在我的开发中,我有共享文件,需要编写多个过程但我发现它只写头部分(只有第一行,即test_data)。我可以使用以下脚本创建相同的行为。任何输入我缺少什么?
#! /usr/bin/env python
import multiprocessing
def check_proc(procs):
"""checking cpu utilization befor starting process"""
for proc in procs:
proc.start()
while(len(multiprocessing.active_children())>10):
continue
for proc in procs:
proc.join()
while (len(multiprocessing.active_children())>5):
time.sleep(1)
def create_file():
f_data = open("temp", "w")
f_data.write("test data\n")
return f_data
def write_data(f_data, number, lock):
lock.acquire()
f_data.write(number)
lock.release()
def main():
f_data = create_file()
procs = []
lock = multiprocessing.Lock()
for i in range(0, 20, 1):
proc = multiprocessing.Process(target=write_data,
args=(f_data, str(i), lock))
procs.append(proc)
check_proc(procs)
if __name__ == "__main__":
main()
预期: 它应该有数字
Python2.7和linux环境
我已经完成了堆栈溢出问题和阻止,并找到了以下链接。但我无法在上面的代码中联系或使用。任何输入。
http://ptspts.blogspot.com/2013/08/how-to-send-unix-file-descriptors.html