2017-11-07 26 views
0

나는 찌름에 풀을 보내고 나중에 풀을 닫거나 풀에 넣으려고합니다.multiprocessing.pool.Pool string 객체로 돌아 가기

import multiprocessing 

num_of_p = 5 
_pool = multiprocessing.Pool(num_of_p) 
pool_string = str(_pool) 

multiprocessing.pool.Pool object로 다시 pool_string를 설정하는 방법이 있나요 : 여기에 내가 뭘하는지 복제하는 방법의 예?

+1

수 없습니다. 왜이 문자열을 처음부터 만들었습니까? – user2357112

+0

플라스크를 사용하여 웹 도구를 만들고 있는데, 도구가 페이지의 DOM으로 실행되는 동안 일어나는 일에 대한 정보를 스트리밍합니다. 실행이 끝나면 생성기를 사용하여 인쇄 문을 반환하기 때문에 풀을 닫거나 결합하는 좋은 방법을 찾을 수 없습니다. 그래서 현재 풀의 문자열의 qouted 버전을 전달하는 앱의 새 위치로 실행 종료시 DOM으로 리디렉션을 스트리밍합니다. 희망은 exec() 또는 뭔가를 사용하여 문자열에서 다시 가져올 수 있다는 것입니다. 오 물론, 그것은 작동하지 않았다. –

+0

이후 저는 이것을 실행의 uuid를 기반으로 모든 풀을 처리하는 전역으로 바꿨습니다. 그러나 가능한 경우에만 궁금했습니다. –

답변

1

아마도 파이썬의 동적 타이핑에 대한 오해가있을 것입니다. 스크립트의 처음부터 끝까지이었다

>>> pool_string 
'<multiprocessing.pool.Pool object at 0x000001F8495BCC18>' 
>>> dir(_pool)[26] 
'__str__' 
>>> _pool.__str__() 
'<multiprocessing.pool.Pool object at 0x000001F8495BCC18>' 

문자열 : 첫 번째

, pool_string는 클래스 당신은 단지 그 __str__ 방법이라고했다 multiprocessing.pool.Pool

의 목적 결코 없었다.

은 아마 당신은 당신의 실제 _pool에 다른 기준을 만들고 싶어 :

_pool2 = _pool 
+0

도움을 주셔서 감사합니다. –

+0

플라스크 웹 도구에 대한 귀하의 의견을 읽고, 나는 그 수영장이나 무언가의 상태를 전송하고 싶지만이 문제로 인해 발생할 수 있다고 생각합니다.'NotImplementedError : 풀 객체를 프로세스간에 전달하거나 절인 할 수 없습니다. 진짜 도움이 될 수 있습니다. –