该文被密码保护。 阅读全文
摘要:
两者相互比较 1、如果只有一个用户连接server端,多路复用IO还不如阻塞IO效率高 2、相比阻塞IO,多路复用IO中间多了个反馈机制 3、多路复用IO的代码可以同时监控socket、多个socket对象coon1 coon2....、 recv 4、多路复用IO可以识别有人连接某个coon3,然 阅读全文
摘要:
server 端 client 端 while true会大量消耗内存,所以非阻塞IO并不是那么完美,便出现了下节内容的多路复用IO 阅读全文
摘要:
read或write都是属于IO操作 比如socket的发送和接收就是IO操作 # 同步 提交一个任务之后要等待这个任务执行完毕# 异步 只管提交任务,不等待这个任务执行完毕就可以做其他事情# 阻塞 recv recvfrom accept# 非阻塞 # 阻塞 线程 运行状态 --> 阻塞状态 -- 阅读全文
该文被密码保护。 阅读全文
摘要:
nginx负载均衡内部就用到协程(最大并发5W) 协程规避IO的例子(充分利用IO操作等待时间),无需关系两个函数之间是怎么切换的 gevent模块相当与操作系统对进程的之间的切换一样,gevent是起到对协程遇到IO操作切换 进程是操作系统资源分配单位,线程是CPU最小的执行单位,那协程呢?(就是 阅读全文
该文被密码保护。 阅读全文
摘要:
守护线程 线程锁 为什么Cpython自带GIL锁还出现死锁,因为是对线程GIL锁,避免不了时间片轮转带来数据不安全 阅读全文
摘要:
多线程接受input类型clientimport socketsk = socket.socket()sk.connect(('127.0.0.1',8080))msg = sk.recv(1024)print(msg)inp = input('>>> ').encode('utf-8')sk.se 阅读全文
摘要:
线程就栈寄存那些东西,占用内存小 import timeimport threading def wahaha(n): time.sleep(0.5) print(n,threading.current_thread(),threading.get_ident()) #线程名和ID for i in 阅读全文