Python(可重入锁-线程同步之条件变量-队列-线程通信event-线程合并join-多进程)
2017-11-12 20:24
756 查看
自己造成的死锁 无法解开
可重入锁
可重入锁的替代方法
线程同步之条件变量
线程同步之队列
线程间通信event
线程的合并join
守护线程
threadinglocal
多进程
fork创建子进程
fork过程
多次fork
进程号
获取进程pid和父进程的pid
con.wait()只要线程执行到了这个位置线程及堵塞目的是等待con.notify通知继续执行
类似于互斥锁, 可以上锁, 可以解锁
如果有多个wait, 当遇到notify的时候由系统决定首先执行哪一个wait继续执行
一秒钟之后
运行结果
在for循环的第一次时, 这是有两个线程到底先执行13行还是27行有系统决定, 所以可能首先打印27行也可能打印13行, 但是确定的是最后打印的两次一定是13行 , 因为sleep了1秒
用join来等待子线程执行完成(也可回收子线程的垃圾)
通过join完成的事情是主线程在等待子线程的结束, 如果子线程不结束那么主线程一直在等待
设置等待时间 , 一般不用
可重入锁
可重入锁的替代方法
线程同步之条件变量
线程同步之队列
线程间通信event
线程的合并join
守护线程
threadinglocal
多进程
fork创建子进程
fork过程
多次fork
进程号
获取进程pid和父进程的pid
自己造成的死锁, 无法解开
可重入锁
可重入锁的替代方法
线程同步之条件变量
con.wait()只要线程执行到了这个位置线程及堵塞目的是等待con.notify通知继续执行
类似于互斥锁, 可以上锁, 可以解锁
如果有多个wait, 当遇到notify的时候由系统决定首先执行哪一个wait继续执行
线程同步之队列
线程间通信event
一秒钟之后
线程的合并join
join能等待运行结果
在for循环的第一次时, 这是有两个线程到底先执行13行还是27行有系统决定, 所以可能首先打印27行也可能打印13行, 但是确定的是最后打印的两次一定是13行 , 因为sleep了1秒
用join来等待子线程执行完成(也可回收子线程的垃圾)
通过join完成的事情是主线程在等待子线程的结束, 如果子线程不结束那么主线程一直在等待
设置等待时间 , 一般不用
守护线程
threading.local()
多进程
fork创建子进程
运行的程序叫做进程fork过程
运行fork的过程是创建一个子进程, 创建的时候会复制父进程的所有东西多次fork
进程号
获取进程pid和父进程的pid
相关文章推荐
- python线程通信之event
- [Linux线程]线程的同步--使用条件变量完成线程同步
- Python多线程编程(八):使用Event实现线程间通信
- Python使用Event线程间通信
- 【Linux】深入理解线程(线程同步、互斥量mutex、死锁、读写锁、条件变量、信号量)
- 3.8 threading的信号量 条件变量同步 event事件 队列模块
- 线程通信之条件变量
- Python多线程 - 线程间通信之“Queue队列”
- python 线程间通信方法一:event 示例
- PYTHON线程知识再研习E---条件变量同步Condition
- [C++11 并发编程] 12 使用条件变量创建线程间安全的队列
- python学习笔记——线程间通信Event
- python线程间通信方法小结:event、condition 和 queue
- python学习笔记——线程间通信Event
- linux线程间通信之条件变量和互斥量
- Python 进程线程之间通信方式(1,基于队列的)
- Python:使用threading模块实现多线程编程八[使用Event实现线程间通信]
- 使用线程间通信之条件变量
- python队列、线程间通信Queue,多进程模块multiprocessing
- python--多线程编程中的线程间通信的问题--变量同步锁