小编use*_*817的帖子

Python多处理队列失败

我创建了100个子进程

proc_list = [
    Process(target = simulator, args=(result_queue,))
    for i in xrange(100)]
Run Code Online (Sandbox Code Playgroud)

并开始他们

for proc in proc_list: proc.start()
Run Code Online (Sandbox Code Playgroud)

在进行一些处理之后,每个进程都会将result_queue(multiprocessing.Queue的实例)10000个元组放入其中.

def simulate(alg_instance, image_ids, gamma, results,
                     simulations, sim_semaphore):
  (rs, qs, t_us) =  alg_instance.simulate_multiple(image_ids, gamma,
                                             simulations)
  all_tuples = zip(rs, qs, t_us)
  for result in all_tuples:
    results.put(result)
  sim_semaphore.release()
Run Code Online (Sandbox Code Playgroud)

我应该(?)在队列中获得1000000个元组,但经过各种运行后我得到这些(样本)大小:14912 19563 12952 13524 7487 18350 15986 11928 14281 14282 7317

有什么建议?

python queue multiprocessing

9
推荐指数
2
解决办法
2339
查看次数

解析defaultdict字符串

我用一个简单的打印命令转储了多个defaultdict,如下所示:

defaultdict(<type 'list'>, {'actual': [20000.0, 19484.0, 19420.0], 'gold': [20000.0, 19484.0, 19464.0]})
Run Code Online (Sandbox Code Playgroud)

我可以使用一些标准的解析器来检索它们吗?我知道我应该使用pickle,但生成这些defaultdict的代码非常慢,我想避免重新运行它.

python parsing defaultdict

3
推荐指数
1
解决办法
1188
查看次数

标签 统计

python ×2

defaultdict ×1

multiprocessing ×1

parsing ×1

queue ×1