上一页 1 2 3 4 5 6 7 8 ··· 10 下一页
摘要: server.py client.py 阅读全文
posted @ 2018-08-19 20:06 四十不惑的编程之路 阅读(161) 评论(0) 推荐(0) 编辑
摘要: client.py client.py 阅读全文
posted @ 2018-08-19 20:01 四十不惑的编程之路 阅读(155) 评论(0) 推荐(0) 编辑
摘要: # 协程 协作 非抢占式 编程者自己调度 # 1、通过生成器 import time def consumer(name): # 这是一个生成器 print("--->ready to eat baozi...") while True: new_baozi = yield print("[%s] is eating baozi %s" ... 阅读全文
posted @ 2018-08-19 01:49 四十不惑的编程之路 阅读(113) 评论(0) 推荐(0) 编辑
摘要: # 进程池 内部维护一个进程序列,当使用时,则去进程池获取一个进程,如果进程池序列没有可供使用的进程,那么程序就等待,直到进程池中有可用进程为止。 # 进程池中有两个方法 apply表示同步方法 apply_async表示异步方法 from multiprocessing import Pool import time, os def foo(i): time.sleep(1) ... 阅读全文
posted @ 2018-08-19 00:29 四十不惑的编程之路 阅读(131) 评论(0) 推荐(0) 编辑
摘要: # 进程的同步 (类似于线程的同步锁,同一时刻只能一个进程运行) from multiprocessing import Process, Lock import time def f(l, i): with l: time.sleep(1) print('helloworld %s' % i) # 上面with l: 相当于 # l.... 阅读全文
posted @ 2018-08-19 00:03 四十不惑的编程之路 阅读(148) 评论(0) 推荐(0) 编辑
摘要: # 进程间通讯 # 1、进程对列multiprocessing.Quere import multiprocessing, time def foo(q): time.sleep(1) print('son process', id(q)) q.put(123) q.put('alex') if __name__ == '__main__': q ... 阅读全文
posted @ 2018-08-18 23:45 四十不惑的编程之路 阅读(623) 评论(0) 推荐(0) 编辑
摘要: # 多进程调用(大部分与多线程的操作一样) # 调用方式1 from multiprocessing import Process import time def f(name): time.sleep(1) print('hello', name, time.ctime()) if __name__ == '__main__': p_list = [] ... 阅读全文
posted @ 2018-08-18 22:39 四十不惑的编程之路 阅读(399) 评论(0) 推荐(0) 编辑
摘要: # 生产者消费者模型 # 在线程世界里,生产者就是生产数据的线程,消费者就是消费数据的线程 # 如果生产者速度快而消费者处理速度慢,或生产者处理速度慢而消费者处理速度快,这样就会发生等待 # 为了解决这个问题于是就引入了生产者和消费者模式 # 生产者消费者模式是通过一个容器来解决生产者与消费者强耦合问题 # 生产者和消费者不直接通读,而通过阻塞队列来进行通讯,生产者—阻塞对列—消费者 # 阻塞队... 阅读全文
posted @ 2018-08-18 21:46 四十不惑的编程之路 阅读(126) 评论(0) 推荐(0) 编辑
摘要: # 队列 一种数据结构(多线程利器) import queue # 导入对列模块 q = queue.Queue() # 创建一个对列对象,先进先出 # q = queue.Queue(3) # 创建一个对列对象,3表示队列中只能有3个值 # q = queue.LifoQueue() # 创建一个对列对象,后进先出 # q = queue.PriorityQueue # 创... 阅读全文
posted @ 2018-08-18 21:02 四十不惑的编程之路 阅读(184) 评论(0) 推荐(0) 编辑
摘要: # 信号量 也是同步锁,可用来控制线程的并发数 import threading, time class MyThread(threading.Thread): def run(self): if semaphore.acquire(): # 同时运行五个线程,acquire()放一个进程进去计数器-1 print(self.name) ... 阅读全文
posted @ 2018-08-18 20:28 四十不惑的编程之路 阅读(101) 评论(0) 推荐(0) 编辑
上一页 1 2 3 4 5 6 7 8 ··· 10 下一页