摘要: from multiprocessing import Process,Pool import time #最后一定要 close 和 join def fun(a): time.sleep(1) print(a) return a+100 def bar(arg): print('----',arg) if __name__ == '__main_... 阅读全文
posted @ 2017-01-13 18:51 200ML 阅读(180) 评论(0) 推荐(0) 编辑
摘要: #太耗资源 一般不太建议用 from multiprocessing import Process,Manager # def fun(d,s,a): # d[a] = a # s.append(a) # # if __name__ == '__main__': # with Manager() as manager: # d = manager.di... 阅读全文
posted @ 2017-01-13 18:15 200ML 阅读(266) 评论(0) 推荐(0) 编辑
摘要: #注意:接收端口要close一下。 from multiprocessing import Process,Pipe def fun(conn): print(conn.recv()) conn.send([43,None,'hello father']) conn.close() if __name__ == '__main__': parent_conn... 阅读全文
posted @ 2017-01-13 17:29 200ML 阅读(384) 评论(0) 推荐(0) 编辑
摘要: #多进程之间的交互,Queue模块跟 线程之间的Queue模块是一样的。 from multiprocessing import Process,Queue def fun(q): q.put(['hello']) if __name__ == '__main__': q = Queue() p = Process(target=fun,args=(q,)) ... 阅读全文
posted @ 2017-01-13 16:44 200ML 阅读(98) 评论(0) 推荐(0) 编辑
摘要: import queue import threading import time def producer(name): cont = 0 while True: print('%s生产骨头'%name,cont) q.put(cont) cont += 1 time.sleep(0.3) def consu... 阅读全文
posted @ 2017-01-13 16:30 200ML 阅读(124) 评论(0) 推荐(0) 编辑
摘要: import queue q = queue.Queue(maxsize=5)#一个先进先出的队列, maxsize指定列队个数 q= queue.LifoQueue(maxsize=5)#一个先进后出的队列, maxsize指定列队个数 q.put()#送往 q.put_nowait()#如果不能添加了就报错 q.get()#得到 q.get_nowait()#如果不能取了就报错 q.emp... 阅读全文
posted @ 2017-01-13 15:25 200ML 阅读(314) 评论(0) 推荐(0) 编辑
摘要: 超过十年以上,没有比解释器全局锁(GIL)让Python新手和专家更有挫折感或者更有好奇心。 未解决的问题 随处都是问题。难度大、耗时多肯定是其中一个问题。仅仅是尝试解决这个问题就会让人惊讶。之前是整个社区的尝试,但现在只是外围的开发人员在努力。对于新手,去尝试解决这样的问题,主要是因为问题难度足够 阅读全文
posted @ 2017-01-13 12:20 200ML 阅读(904) 评论(0) 推荐(0) 编辑
摘要: 多线程类的方法 import threading,time class MyThread(threading.Thread): def __init__(self,mun): threading.Thread.__init__(self) self.mun = mun def run(self): print(self.mu... 阅读全文
posted @ 2017-01-13 09:45 200ML 阅读(130) 评论(0) 推荐(0) 编辑