您的位置:首页 > 编程语言 > Python开发

Python(可重入锁-线程同步之条件变量-队列-线程通信event-线程合并join-多进程)

2017-11-12 20:24 756 查看
自己造成的死锁 无法解开

可重入锁

可重入锁的替代方法

线程同步之条件变量

线程同步之队列

线程间通信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



内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: