是什么导致多处理队列出现此PermissionError?

2024-10-16 20:48:57 发布

您现在位置:Python中文网/ 问答频道 /正文

我一直在为一个项目探索队列、管道等

以下代码用于了解队列如何运行:

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"


Tags: inpyselftarget队列putlinemultiprocessing