摘要: 1、基本概念 事件是线程之间用于通讯的对象。有的线程等待信号,有的线程发出信号。基本上事件对象都会维护一个内部变量,可以通过set方法设置为true,也可以通过clear方法设置为false。wait方法将会阻塞线程,直到内部变量为true。 2、使用用例 线程t1在list最后添加值,然后设置ev 阅读全文
posted @ 2018-10-11 18:38 杜先生的博客 阅读(485) 评论(0) 推荐(0) 编辑
摘要: 1、基本概念 条件指的是应用程序状态的改变。其中某些线程在等待某一条件发生,其 他线程会在该条件发生的时候进行通知,一旦条件发生,线程会拿到共享资源的唯一权限。 2、示例代码 执行结果如下: 阅读全文
posted @ 2018-10-11 17:02 杜先生的博客 阅读(467) 评论(0) 推荐(0) 编辑
摘要: 1、基本概念 信号量是由操作系统管理的一种抽象数据类型,用于在多线程中同步对共享资源的使用。本质上说,信号量是一个内部数据,用于标明当前的共享资源可以有多少并发读取。 同样在threading中,信号量有acquire和release两个函数。 - 每当线程想要读取关联了信号量的共享资源时,必须调用 阅读全文
posted @ 2018-10-11 14:28 杜先生的博客 阅读(1967) 评论(0) 推荐(0) 编辑
摘要: 1、基本概念 如果想让只有拿到锁的线程才能释放该锁,那么应该使用RLock()对象。当需要在类外面保证线程安全,又要在类内使用同样方法的时候RLock()就很使用。 RLock叫做Reentrant Lock,就是可以重复进入的锁,也叫递归锁。这种锁对比Lock有三个特点:1、谁拿到锁,谁释放;2、 阅读全文
posted @ 2018-10-11 11:01 杜先生的博客 阅读(1087) 评论(0) 推荐(0) 编辑