0
내가 스레드와 gevent의 성능을 비교하는 테스트 케이스를 쓰기 등의 작업을 수행하는 멀티 스레드를 사용하여
:gevent와 thread 성능을 비교합니까?
import time
import threading
def sync_task():
#do something
time.sleep(1)
def multi_thread_run():
start = time.time()
for i in range(10):
t = threading.Thread(target=sync_task)
t.start()
end = time.time()
print("multi thread task executed in %f second"%(end-start))
인쇄 : 같은 작업을 할 스레드를 대체 gevent 사용하지만
multi thread task executed in 0.002425 second
:
import gevent
def async_task():
#do something
gevent.sleep(1)
def async_run():
start = time.time()
coroutins = []
for i in range(10):
coroutins.append(gevent.spawn(async_task))
gevent.joinall(coroutins)
end = time.time()
print("async task executed in %f second"%(end-start))
인쇄 :
,async task executed in 1.002012 second
많은 블로그 게시물에서 나는 coroutine이 mutilthread보다 효과적이라고보고,이 경우 어떻게 설명 할 수 있습니까?