我一直在为一个项目探索队列、管道等
以下代码用于了解队列如何运行:
from multiprocessing import Process, Queue
def words(liss, q):
newlis = []
for i in liss:
# newlis.append(str(i) + "flag")
q.put(str(i) + "flag")
def reading(q):
while not q.empty():
print(q.get())
if __name__ == '__main__':
q = Queue()
p1 = Process(target=words, args=([23, "Hello", "Hey", 78], q))
p2 = Process(target=readit, args=(q,))
p1.start()
p2.start()
p1.join()
p1.join()
我已尝试更改我放入队列中的内容,并以更高的权限运行该程序。两人都遇到了以下错误:
Process Process-1:
Traceback (most recent call last):
File "C:\Users\Jonat\AppData\Local\Programs\Python\Python37-32\lib\multiprocessing\process.py", line 297, in _bootstrap
self.run()
File "C:\Users\Jonat\AppData\Local\Programs\Python\Python37-32\lib\multiprocessing\process.py", line 99, in run
self._target(*self._args, **self._kwargs)
File "C:\Users\Jonat\PycharmProjects\Giraffe\Small-Tests.py", line 8, in words
q.put(liss)
File "C:\Users\Jonat\AppData\Local\Programs\Python\Python37-32\lib\multiprocessing\queues.py", line 82, in put
if not self._sem.acquire(block, timeout):
PermissionError: [WinError 5] Access is denied
Process finished with exit code 0
我找到了另一篇关于这个错误的帖子,但我不太明白。不管怎样,我将在这里链接帖子:What is the reason of this errror: "PermissionError: [WinError 5] Access is denied"
由@DipenShah解决
这是Python 3.7.2的一个已知问题 升级或降级到其他版本应该可以解决此问题
相关问题 更多 >
编程相关推荐