from time import sleep import threadpool def eat(a,b,c): print("%s请%s吃%s"%(a,b,c)) sleep(2) """ 线程中的传参形式 [(args,kwargs),(args,kwargs)] """ if __name__ == '__main__': #线程1 # value1 = (1,2,3) # 线程2 # value2 = (4,5,6) # #线程3 # value3 = (7,8,9) value1 = {"c":"坚果","b":"haha","a":"hehe"} value2 = {"c":"葡萄","b":"xixi","a":"xixi"} value3 = {"c":"苹果","b":"hhee","a":"xixi"} #创建一个线程池 #参数用来设置线程池中可以同时运行线程的数量 thPool = threadpool.ThreadPool(2) # argslist = ["haha","hehe","xixi","yaya","安倍狗"] #用args形式给线程传参的(args,kwargs),因为没有kwargs形式的参数,所以 #第二个为None # argslist = [(value1,None),(value2,None),(value3,None)] #kwargs形式给线程传参 #因为没有args形式的参数,所以第一个为None argslist = [(None, value1), (None,value2), (None,value3)] #把每个线程当作一个请求,makesRequests将每个线程创建成一个请求 threadRequests = threadpool.makeRequests(eat,argslist) #将线程池中的每个线程请求放到线程池中 for request in threadRequests: thPool.putRequest(request) #开启,启动线程池 #wait会等待所有的子线程执行完后再执行wait()后面的代码 thPool.wait()
Python线程池编程和参数的传递
最新推荐文章于 2025-03-17 15:32:38 发布