'''
使用线程池
'''
import random
import threading
import threadpool
import time
argsList1 = [
"张三丰", "赵四", "王五", "六爷", "洪七公", "朱重八", "马英九"
]
def kill(who):
tname = threading.current_thread().getName()
print("%s开始杀%s..." % (tname, who))
time.sleep(random.randint(1, 5))
print("-----%s杀死了%s-----" % (tname, who))
pass
argsList2 = [
([1, "今天"], {"who": "张三丰", "reason": "已经很老了"}),
([2, "明天"], {"who": "赵四", "reason": "我是刘能的朋友"}),
([3, "后天"], {"who": "王五", "reason": "隔壁老王嫌疑人"}),
([4, "今天"], {"who": "六爷"}),
([5, "明天"], {"reason": "我是刘能的朋友"}),
([6, "后天"], None),
]
def killGood(order, when, who="No one", reason="凡人皆有一死"):
tname = threading.current_thread().getName()
print("%s开始杀%s...,排名%d,时间%s,原因:%s" % (tname, who, order, when, reason))
time.sleep(random.randint(1, 5))
print("-----%s杀死了%s-----" % (tname, who))
return "well done"
pass
def onKillReturn(request, result):
print("onKillReturn", request, result)
def handleMyException(request, exception):
print("handleMyException", request, exception)
if __name__ == '__main__':
pool = threadpool.ThreadPool(4)
requests = threadpool.makeRequests(killGood, argsList2, callback=onKillReturn, exc_callback=handleMyException)
for req in requests:
pool.putRequest(req)
pool.wait()
print("over")
pass