From: http://www.cnblogs.com/holbrook/archive/2012/03/21/2409031.html

很多时候,线程之间会有互相通信的需要。常见的情形是次要线程为主要线程执行特定的任务,在执行过程中需要不断报告执行的进度情况。前面的条件变量同步已经涉及到了线程间的通信(threading.Condition的notify方法)。更通用的方式是使用threading.Event对象。
threading.Event可以使一个线程等待其他线程的通知。其内置了一个标志,初始值为False。线程通过wait()方法进入等待状态,直到另一个线程调用set()方法将内置标志设置为True时,Event通知所有等待状态的线程恢复运行。还可以通过isSet()方法查询Envent对象内置状态的当前值。

举例如下:

import threadingimport randomimport time

class MyThread(threading.Thread):    def __init__(self,threadName,event):        threading.Thread.__init__(self,name=threadName)        self.threadEvent = event

    def run(self):        print "%s is ready" % self.name        self.threadEvent.wait()        print "%s run!" % self.name

sinal = threading.Event()for i in range(10):    t = MyThread(str(i),sinal)    t.start()

sinal.set()

python多线程编程(7):线程间通信相关推荐

  1. C++多线程编程分析-线程间通信

    上文我们介绍了如何建立一个简单的多线程程序,多线程之间不可避免的需要进行通信.相比于进程间通信来说,线程间通信无疑是相对比较简单的. 首先我们来看看最简单的方法,那就是使用全局变量(静态变量也可以)来 ...

  2. Python多线程编程之线程子类化

    Python多线程编程之线程子类化 基本思路 Threading模块简介 **MyThread**主要代码 实例 所有代码 运行结果 基本思路 导入Threading模块下的Thread类,将其子类化 ...

  3. 多线程编程之三——线程间通讯

    七.线程间通讯 一般而言,应用程序中的一个次要线程总是为主线程执行特定的任务,这样,主线程和次要线程间必定有一个信息传递的渠道,也就是主线程和次要线程间要进行通信.这种线程间的通信不但是难以避免的,而 ...

  4. python多线程编程(2): 线程的创建、启动、挂起和退出

    From: http://www.cnblogs.com/holbrook/archive/2012/03/02/2376940.html 如上一节,python的threading.Thread类有 ...

  5. python多线程编程(8):线程的合并和后台线程

    From: http://www.cnblogs.com/holbrook/archive/2012/03/21/2410120.html 线程的合并 python的Thread类中还提供了join( ...

  6. Java线程间通信-回调的实现方式

    2019独角兽企业重金招聘Python工程师标准>>> Java线程间通信-回调的实现方式 Java线程间通信是非常复杂的问题的.线程间通信问题本质上是如何将与线程相关的变量或者对象 ...

  7. 多线程编程(2): 线程的创建、启动、挂起和退出

    python多线程编程(2): 线程的创建.启动.挂起和退出 如上一节,python的threading.Thread类有一个run方法,用于定义线程的功能函数,可以在自己的线程类中覆盖该方法.而创建 ...

  8. Java多线程编程-(5)-使用Lock对象实现同步以及线程间通信

    前几篇: Java多线程编程-(1)-线程安全和锁Synchronized概念 Java多线程编程-(2)-可重入锁以及Synchronized的其他基本特性 Java多线程编程-(3)-线程本地Th ...

  9. Java多线程编程-(4)-线程间通信机制的介绍与使用

    上一篇: Java多线程编程-(1)-线程安全和锁Synchronized概念 Java多线程编程-(2)-可重入锁以及Synchronized的其他基本特性 Java多线程编程-(3)-线程本地Th ...

最新文章

  1. 通过internet在计算机之间以用户名,第7_8章_计算机网络与internet应用.doc
  2. lab2_selenium测试
  3. Python-time标准库知识小结
  4. 【控制】麦克纳姆轮 Mecanum 小车模型分析
  5. CSS问题的撰写准则
  6. 牛客题霸 NC29 二维数组中的查找
  7. 【OS学习笔记】三十一 保护模式九:页目录、页表和页三者的关系详解
  8. 【转】带你玩转Visual Studio——02.带你新建一个工程
  9. 页面的主题标记--body
  10. 发布半年依旧无对手!网友:我怎么没听说...
  11. centos6升级glibc-2.14没有报错,但是验证没有升级成功的问题解决
  12. 吴恩达机器学习【第六天】神经网络模型
  13. [EasyHexo 专栏] #1 - Markdown 编辑器推荐与语法简介
  14. centos7.2 开发 部署 .net core
  15. 湾区那些事儿 (二)
  16. VC++ EasyPR车牌识别
  17. linux 消息队列API
  18. 计算机校本培训 培训总结,校本培训工作总结(2015—2016学年度)
  19. vue 路由地址不跳转 解决办法
  20. 使用Java API访问HFDS

热门文章

  1. EditPlus自定义模板
  2. Oracle查看对象依赖关系
  3. SQL SERVER 参考:游标(Cursor)的讲解与实例
  4. leetcode306. 累加数(回溯)
  5. leetcode714. 买卖股票的最佳时机含手续费(动态规划)
  6. html画布图片不显示_如何在HTML5画布上显示图像
  7. 客户旅程_我们进入微服务世界的旅程-以及从中学到的东西。
  8. instagram技术_Instagram9位科技女孩进行技术采访的主要技巧
  9. aws cognito_AWS Cognito的用户管理—(2/3)核心功能
  10. 知识力量_网络分析的力量