我有多个工作进程从同一multiprocessing.queue()
读取。每个工作进程只读取属于自己的内容,并且必须保持其他内容不变。所以基本上工作进程必须首先检查队列内容然后决定是否弹出一个项目。
有没有办法用multiprocessing.queue
?
答案 0 :(得分:2)
您可以随时放回您不需要的消息(如果订单不是问题)
queues = { 'queue4worker_type1': Queue(),
'queue4worker_type2': Queue(),
}
#each worker can now consume only messages for its wanted types ...
如果订单很重要,您可以使用多个队列,因此每条消息类型都将在其自己的队列中
#Clear Previous
rm(list=ls())
cmp = 2 #Number of components in sample
n = 10 #Number of simulated data points
B = matrix(c(1,2,3,4), nrow=2,byrow=TRUE) #Coefficient matrix
#Simulate model
X = matrix(rep(0,2*n), nrow=2,byrow=TRUE) #Initiate independent matrix
Y = matrix(rep(0,2*n), nrow=2,byrow=TRUE) #Initiate response matrix
for (j in 1:cmp){
X[j,] = rnorm(n) #independent data
e = rnorm(n) #error term
Y[j,] = B[j,1]+ B[j,2]*X[j,] + e
}
#Linear Regression
fit = glm(Y~X,family = gaussian())
fit