#!/usr/bin/env python #coding=utf8 import multiprocessing import threading import threadpool import time import re import os ''' 想法: 开启了11个进程,第一个进程是以多线程方式运行,再通过进程间通信来使其他进程工作. ''' def put_test(str1): # 处理出函数名,开启多线程 print str1, q.put(str1) time.sleep(1) def get_test(): # 进程池除第一个以外的进程 print ' 5' print q.qsize(),os.getpid() print q.get(True,1) time.sleep(1) ############################################################### if __name__=='__main__': multiprocessing.freeze_support() q=multiprocessing.Queue(maxsize = 10) # 线程池 data=range(1,11) pool=threadpool.ThreadPool(10) requests=threadpool.makeRequests(put_test,data) [pool.putRequest(req) for req in requests] pool.wait() # 进程池 pool2 = multiprocessing.Pool(processes=3) for var in range(1,11): # 20个进程 pool2.apply_async(get_test,[]) pool2.close() pool2.join() print "size:",q.qsize()
get_test()运行不正常,觉得put_test()在q里面放入的数据,在get_test()中读不出来。不知道要如何实现多线程与多进程的同时运行。有没有人知道如何做啊。。。谢谢啦