上一页 1 ··· 19 20 21 22 23 24 25 26 27 ··· 29 下一页
摘要: Title 同学们 晚上好 同学们 晚上好 同学们 晚上好 同学们 晚上好 123 同学们 晚上好 同学们 晚上好 ahhh 阅读全文
posted @ 2018-12-03 14:43 山…隹 阅读(382) 评论(0) 推荐(0)
摘要: 列表 无序列表 li ul>li*4 +tab 快捷写法--> 1 2 3 4 有序列表 1 2 3 4 自定义列表 ... 阅读全文
posted @ 2018-12-03 12:49 山…隹 阅读(111) 评论(0) 推荐(0)
摘要: img 阅读全文
posted @ 2018-12-03 12:39 山…隹 阅读(86) 评论(0) 推荐(0)
摘要: Title haha haha 只是物理意义上加粗 --> 只是物理意义上斜体 --> Python[1](英国发音>:/ˈpaɪθən/ 美国发音:/ˈpaɪθɑːn/), 是一种面向对象的解释型计算机程序设计语言,由荷兰人Guido van Rossum于1989年发明,第一个公开发行版发行于1991年。 ... 阅读全文
posted @ 2018-12-03 12:39 山…隹 阅读(139) 评论(0) 推荐(0)
摘要: from gevent import monkey;monkey.patch_all()from gevent.queue import Queue #队列 gevent中的队列import geventimport random#这个猴子补丁,all是所有能切换协程的地方都切换,包含了socket,所以一般都用allqq = Queue(3)def produceer(): wh... 阅读全文
posted @ 2018-11-25 18:56 山…隹 阅读(521) 评论(0) 推荐(0)
摘要: 并发:要做到同时服务多个客户端,有三种技术 1. 进程并行,只能开到当前cpu个数的进程,但能用来处理计算型任务 ,开销最大 2. 如果并行不必要,那么可以考虑用线程并发,单位开销比进程小很多 线程:并发(轮询调度,遇到阻塞就切换) 只要是网络,就会有延迟,有延迟就阻塞,所以比一般的单路要好些 3. 阅读全文
posted @ 2018-11-25 18:02 山…隹 阅读(179) 评论(0) 推荐(0)
摘要: 1. 导gevent中的猴子补丁,来把原来python自带的socket变成基于epoll的socket(解除阻塞问题) 代码: 阅读全文
posted @ 2018-11-25 15:57 山…隹 阅读(684) 评论(0) 推荐(0)
摘要: 代码: from greenlet import greenlet import random def pro(): 生产者 while True: item = random.randint(0,99) print("生产了:",item) c.switch(item) 向消费者发送item ,并 阅读全文
posted @ 2018-11-25 14:29 山…隹 阅读(209) 评论(0) 推荐(0)
摘要: 思路: yield可以使得函数阻塞,next,和send可以解阻塞,实现数据不竞争的生产者消费者模式 代码: import random #随机数,模拟生产者的制造物 def eat(): #消费者 while True: item = (yield) print("消费了:",item) def 阅读全文
posted @ 2018-11-25 11:24 山…隹 阅读(400) 评论(0) 推荐(0)
摘要: 思想: 1. 创建与服务器相同cpu个数的进程个数来监听(accept)客户端响应,并在每个进程中先创建好一个线程池 2. 有客户端访问时,解除其中一个进程的accpet阻塞,进入到线程中来执行接收数据工作( recv() ),用线程防止recv阻塞,线程调用recv方法 3. main主函数调用时 阅读全文
posted @ 2018-11-23 13:41 山…隹 阅读(1202) 评论(0) 推荐(1)
上一页 1 ··· 19 20 21 22 23 24 25 26 27 ··· 29 下一页