相关疑难解决方法(0)

如何在进程之间共享一个类?

我希望拥有全局对象,所有进程都以最小的锁定进行共享和更新.

import multiprocessing

class Counter(object):
  def __init__(self):
    self.value = 0

  def update(self, value):
    self.value += value


def update(counter_proxy, thread_id):
  counter_proxy.value.update(1)
  print counter_proxy.value.value, 't%s' % thread_id, \
    multiprocessing.current_process().name
  return counter_proxy.value.value

def main():
  manager = multiprocessing.Manager()
  counter = manager.Value(Counter, Counter())
  pool = multiprocessing.Pool(multiprocessing.cpu_count())
  for i in range(10):
    pool.apply(func = update, args = (counter, i))
  pool.close()
  pool.join()

  print 'Should be 10 but is %s.' % counter.value.value

if __name__ == '__main__':
  main()
Run Code Online (Sandbox Code Playgroud)

结果是 - 不是10而是零.看起来该对象的共享值未更新.如何锁定和更新此值?

0 t0 PoolWorker-2
0 t1 PoolWorker-3
0 t2 PoolWorker-5 …
Run Code Online (Sandbox Code Playgroud)

python multiprocessing python-multiprocessing

11
推荐指数
1
解决办法
1万
查看次数

shell脚本使用python远程执行

有没有办法在Windows上使用Python来执行位于远程Unix机器上的shell脚本?

PS:对于迟到的编辑感到抱歉.我知道帕拉米科,但我想知道是否有办法没有它.首先,可以用subprocess()完成吗?

python unix shell

6
推荐指数
2
解决办法
1万
查看次数

命名空间污染是什么?

"命名空间污染"一词的含义是什么?为什么静态方法有助于防止它?

这个问题看起来很相似,但具体与JavaScript有关,答案并没有定义这个术语.

namespaces

6
推荐指数
1
解决办法
8520
查看次数