1
#Version1
main_df = pd.read_csv('Million_rows.csv')
def myfunction(args*,start,end):
for i in range(start,end):
if condition1:
for item in mainTreeSearch:
...
lock.acquire()
###write to main_df
lock.release()
noLuck = False
break
if noLuck and Acondition:
lock.acquire()
###write to main_df
lock.release()
elif
... various asymmetric decision trees...
t1 = Thread(target=myfuct, args=(args*),0,250))
t2 = Thread(target=myfuct, args=(args*),250,500))
t3 = Thread(target=myfuct, args=(args*),500,750))
t4 = Thread(target=myfuct, args=(args*),750,1000))
내 문제는 스레드의 나머지 부분을 어떻게 먹일지 모르겠다. 나는 Queue
을 성공적으로 시도하지 못했다. 모든 데이터 또는 임의의 충돌이 일어날 sleep
1 개 스레드 돼지 중 하나없이 버전 2에서다음 블록을 요청하기 위해 스레드간에 통신하는 방법은 무엇입니까?
#Version2
def myfuntion(args*,q)
while True:
q.get()
....same search as above...without locking
q.task_done()
q = Queue(maxsize=0)
num_threads = 5
threads =[]
for i in range(num_threads):
worker = Thread(target=myfunction, args=(args*))
worker.setDaemon(True)
threads.append(worker)
worker.start()
for x in range(1000):
#time.sleep(.005)
q.put(x)
q.join()
.
버전 1에서는 threading.nodify()
메커니즘을 사용해야합니까? 그렇다면 구현 방법은 무엇입니까?
감사합니다. 그러나 나는 또한 위의 골격에서 시작했다. 큐잉 메커니즘은 일관되게 기능하지 못하고 딜레이 만 추가하면 다소 안정화되는 것처럼 보인다. (명시 적이지 않은 것에 대해 사과드립니다. 그러나 매개 변수는 실제 형식이 아닌이 스 니펫의 자리 표시 자입니다.) – user8588756
조금 자세하게 요구 사항을 지정할 수 있습니까? – csurfer