py_web_internet
yanga11ang
an ACMer,team: Echo
展开
-
3.7 学网络编程 threading线程的join deamon方法 锁,死锁,递归锁
线程的join deamon方法#join 阻塞的是所在的地方,等待线程结束才继续向下执行import threadingimport timedef foo(n): print('yanga11ang,foo%s'%n) time.sleep(3)def bar(n): print('bar%s'%n) time.sleep(2)#第一种直...原创 2018-03-07 18:24:09 · 159 阅读 · 0 评论 -
3.8 threading的信号量 条件变量同步 event事件 队列模块
1.信号量 锁 yanga11ang#并行的多把锁 ,有多少把锁意思是可以支持多少个线程可以并行 count,类比车位 用于链接数据库import threadingimport timeclass Mythread(threading.Thread): def run(self): if semaphore.acquire(): prin...原创 2018-03-08 11:49:20 · 236 阅读 · 0 评论 -
3.9 学网络编程 进程
1.进程#多线程实现不了真正的多线程#多进程 第一种方法from multiprocessing import Processdef f(name): time.sleep(1) print('yanga11ang',name)if __name__ == '__main__' ps=[] for i in range(3): p...原创 2018-03-09 21:16:20 · 100 阅读 · 0 评论 -
3.10 学网络编程 协程 osi七层协议-物理层-数据链路层-网络层
1.协程 是用户态的轻量级线程#-----优点------------#无需上下文切换#无需原子操作锁定集同步的开销#方便切换控制流,简化编程模型#高并发,高扩展性,低成本,一个cpu支持上万协程 实现高并发处理#------缺点----------#无法多核 ,(完善,进程+多协程)#进行io阻塞,阻塞的是整个程序#***基于yield实现协程import time...原创 2018-03-10 13:47:41 · 252 阅读 · 0 评论 -
3.5 学网络编程 远程控制
1.远程控制#利用subprocess 打开控制台#cmd_client.pyimport subprocessimport socketsk=socket.socket()address=('127.0.0.1',80000)sk.bind(address)sk.listen(3)while 1: conn,addr=sk.accept() print(a...原创 2018-03-05 20:48:05 · 345 阅读 · 0 评论 -
3.10 学网络编程 osi七层协议-传输层
1.osi七层协议 续def author('yanga11ang'):def time('2018-3-11'):def a():#osi五层协议# 传输层 :以上三层只能找到通信的两台电脑,不能找的通信的程序,传输层规定:端口号# 所有的程序都会在eth0(网卡)上申请一个端口号0-65555# tcp协议 (链接建立成功,持续占用系统资源)# ...原创 2018-03-12 21:34:29 · 187 阅读 · 0 评论 -
3.13 学网络编程 io阻塞
1.事件驱动和py无关,编程思想def author('yanga11ang'):#第一种...傻逼式whilewhile True: 鼠标监听#事件驱动'''目前大部分的UI编程都是事件驱动模型,如很多UI平台都会提供onClick()事件,这个事件就代表鼠标按下事件。事件驱动模型大体思路如下: 有一个事件(消息)队列; 鼠标按下时,往这个队列中增加一个...原创 2018-03-13 19:21:12 · 160 阅读 · 0 评论 -
3.6 学网络编程 线程进程 多进程解决方法
1.socketserver 模块#并发的默认5人,写服务端可以省去许多功夫相比较socketimport socketserverclass MyServer(socketserver,BaseRequestHandler): def handle(self): print(‘yanga11ang服务器启动....’) conn=self.re...原创 2018-03-06 17:40:09 · 134 阅读 · 0 评论