我想並行運行2個函數,並使用一個函數的返回值(它被連續存儲在一個列表中)在另一個函數中使用。功能要與通用列表並行運行
我已經寫了一些功能來實現上述(從這個論壇上的一些以前的帖子獲得幫助)。
u=[]
def func_a():
Num1=10000
for i1 in range(callNum1):
ul = <some_function_returns_a_value>
u.append(ul)
def func_b():
Num2=10000
time.sleep(30)
for i2 in range(Num2):
ul1=u.pop(i2)
print ul1
def RunP(*fns):
proc = []
for fn in fns:
p = Process(target=fn)
p.start()
proc.append(p)
for p in proc:
p.join()
我通話雙方的功能,如下面
RunP(func_a, func_b)
但是當我運行它,我得到這個錯誤:
RunP(func_a, func_b)
Process Process-2:
Traceback (most recent call last):
File "/usr/lib/python2.4/site-packages/multiprocessing-2.6.2.1-py2.4-linux-i686.egg/multiprocessing/process.py", line 237, in _bootstrap
self.run()
File "/usr/lib/python2.4/site-packages/multiprocessing-2.6.2.1-py2.4-linux-i686.egg/multiprocessing/process.py", line 93, in run
self._target(*self._args, **self._kwargs)
File "test.py", line 419, in func_b
ul1=u.pop(i2)
IndexError: pop from empty list
請幫我實現了預定的任務。
請正確縮進代碼。現在有語法錯誤 – Simon 2012-04-12 08:21:55