我试图拆分循环即
N = 1000000
for i in xrange(N):
#do something
Run Code Online (Sandbox Code Playgroud)
使用multiprocessing.Process并且它适用于N的小值.当我使用更大的N值时会出现问题.在p.join()之前或期间发生奇怪的事情并且程序没有响应.如果我把print i,而不是q.put(i)放在函数f的定义中,一切都运行良好.
我将不胜感激任何帮助.这是代码.
from multiprocessing import Process, Queue
def f(q,nMin, nMax): # function for multiprocessing
for i in xrange(nMin,nMax):
q.put(i)
if __name__ == '__main__':
nEntries = 1000000
nCpu = 10
nEventsPerCpu = nEntries/nCpu
processes = []
q = Queue()
for i in xrange(nCpu):
processes.append( Process( target=f, args=(q,i*nEventsPerCpu,(i+1)*nEventsPerCpu) ) )
for p in processes:
p.start()
for p in processes:
p.join()
print q.qsize()
Run Code Online (Sandbox Code Playgroud) 问题是:我想要全局变量 X,它采用 alpha 值。对于下面的代码,控制台中 X 的值始终为零。
var X = 0;
window.addEventListener("deviceorientation", handleOrientation, true);
function handleOrientation(event) {
var alpha = Math.round(event.alpha);
X = alpha;
}
console.log(X);
Run Code Online (Sandbox Code Playgroud)
编辑:我想做类似的事情
var X = 0;
window.addEventListener("deviceorientation", handleOrientation, true);
function handleOrientation(event) {
var alpha = Math.round(event.alpha);
X = alpha;
}
function f(x){ return x*x }
f(X);
Run Code Online (Sandbox Code Playgroud)
现在我明白我必须将 f(X) 放在函数 handleOrientation 中。我想没有其他办法了吗?