2017年6月25日

python网络编程-进程锁

摘要: 一:进程锁的作用 进程锁是防止多进程并发执行在屏幕打印的时候,其他进程也输出数据到屏幕,而出现混乱现象. 比如:进程池中很多进程会向同一个日志文件中打印日志 二:代码 阅读全文

posted @ 2017-06-25 20:05 shisanjun 阅读(137) 评论(0) 推荐(0) 编辑

python网络编程-进程间数据通信(Queue,Pipe ,managers)

摘要: 一:进程间数据交换方法 不同进程间内存是不共享的,要想实现两个进程间的数据交换,可以用以下方法: Queue,Pipe ,managers 1)Queue,使用方法跟threading里的queue差不多 2)Pipe Pipe()返回的对象代表管的两端。每个连接对象有send()和recv()方法 阅读全文

posted @ 2017-06-25 17:10 shisanjun 阅读(392) 评论(0) 推荐(0) 编辑

python网络编程-多进程multiprocessing

摘要: 一:mutilprocess简介 多线程类似于同时执行多个不同程序,多线程运行有如下优点: 使用线程可以把占据长时间的程序中的任务放到后台去处理。 用户界面可以更加吸引人,这样比如用户点击了一个按钮去触发某些事件的处理,可以弹出一个进度条来显示处理的进度 程序的运行速度可能加快 在一些等待的任务实现 阅读全文

posted @ 2017-06-25 15:17 shisanjun 阅读(208) 评论(0) 推荐(0) 编辑

python网络编程-线程队列queue

摘要: 一:线程queu作用 Python中,queue是线程间最常用的交换数据的形式。 队列两个作用:一个是解耦,一个是提高效率 二:语法 1)队列的类 优先级队列的构造函数。maxsize可以放置在队列中的项的最大个数。 一旦达到这个大小,插入将阻塞,直到队列项被消耗。maxsize值为小于等于0,表示 阅读全文

posted @ 2017-06-25 14:55 shisanjun 阅读(601) 评论(0) 推荐(0) 编辑

python网络编程--线程event

摘要: 一:线程event作用 Python提供了Event对象用于线程间通信,它是线程设置的信号标志,如果信号标志位真,则其他线程等待直到信号结束。 Event对象实现了简单的线程通信机制,它提供了设置信号,清楚信号,等待等用于实现线程间的通信。 官方解释 event是一个简单的同步对象;event表示内 阅读全文

posted @ 2017-06-25 10:10 shisanjun 阅读(229) 评论(0) 推荐(0) 编辑

2017年6月22日

python网络编程--线程Semaphore(信号量)

摘要: 一:Semaphore(信号量) 互斥锁 同时只允许一个线程更改数据,而Semaphore是同时允许一定数量的线程更改数据 ,比如厕所有3个坑,那最多只允许3个人上厕所,后面的人只能等里面有人出来了才能再进去。 阅读全文

posted @ 2017-06-22 14:50 shisanjun 阅读(184) 评论(0) 推荐(0) 编辑

python网络编程--线程递归锁RLock

摘要: 一:死锁 所谓死锁:是指两个或两个以上的进程或线程在执行过程中,因争夺资源而造成的一种互相等待的现象,若无外力作用,它们都将无法推进下去。此时称系统处于死锁状态或系统产生了死锁,这些永远在互相等待的进程成为死锁进程。多个lock会造成死锁 二:递归锁和线程锁差异 在threading模块中,定义两种 阅读全文

posted @ 2017-06-22 14:47 shisanjun 阅读(186) 评论(0) 推荐(0) 编辑

python网络编程--线程锁(互斥锁Mutex)

摘要: 一:为什么需要线程锁 一个进程下可以启动多个线程,多个线程共享父进程的内存空间,也就意味着每个线程可以访问同一份数据,此时,如果2个线程同时要修改同一份数据,会出现什么状况? 很简单,假设你有A,B两个线程,此时都 要对num 进行减1操作, 由于2个线程是并发同时运行的,所以2个线程很有可能同时拿 阅读全文

posted @ 2017-06-22 14:29 shisanjun 阅读(431) 评论(0) 推荐(0) 编辑

python网络编程--线程join和Daemon(守护进程)

摘要: 一:什么情况下使用join join([timeout])调用join函数会使得主调线程阻塞,直到被调用线程运行结束或超时。 参数timeout是一个数值类型,用来表示超时时间,如果未提供该参数,那么主调线程将一直阻塞直到被调用线程结束 二:Daemon setDaemon()可以参考Python文 阅读全文

posted @ 2017-06-22 10:36 shisanjun 阅读(560) 评论(0) 推荐(0) 编辑

python网络编程--线程使用threading

摘要: 一:线程使用 线程使用有两种方法,一种是直接使用,二是通过继承threading.Thread类使用 二:函数式使用 函数式:调用thread模块中的start_new_thread()函数来产生新线程。语法如下: function - 线程函数。 args - 传递给线程函数的参数,他必须是个tu 阅读全文

posted @ 2017-06-22 10:28 shisanjun 阅读(163) 评论(0) 推荐(0) 编辑

导航