파이썬 멀티프로세싱에서 AttributeError: 'ForkAwareLocal' object has no attribute 'connection' 오류가 뜹니다

조회수 551회
import multiprocessing
from time import sleep

def a(num, list1, list2):
    if(num==1):
        count=0
        for k in list1:
            if k not in list2:
                list2.append(k)
            sleep(0.05)
            count= count + 1
            print('a '+ str(count))
    if(num==2):
        count=0
        for j in list2:       
            if j+10000 not in list1:
                list1.append(j+10000)
            sleep(0.05)
            count= count + 1
            print('b '+ str(count))

if __name__ == '__main__':
    manager    = multiprocessing.Manager()
    manager2    = multiprocessing.Manager()
    list1 = manager.list()
    for n in range(1,100):
        list1.append(n)
    list2 = manager2.list()
    for n in range(101,1000):
        list2.append(n)
    for num in range(1,3):
        p = multiprocessing.Process(target=a, args=(num, list1,list2))
        p.start()
        sleep(0.05)

한 함수인데 나눠야지만 출력이 되네요

이를 실행했을때 이런 오류가 발생했습니다

Process Process-3:
Traceback (most recent call last):
  File "C:\Users\AAA\AppData\Local\Programs\Python\Python310\lib\multiprocessing\managers.py", line 810, in _callmethod
    conn = self._tls.connection
AttributeError: 'ForkAwareLocal' object has no attribute 'connection'

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)