zoukankan      html  css  js  c++  java
  • threading event

    #!usr/bin/env python
      2 #coding: utf-8
      3 #Author: Andy
      4 
      5 import threading
      6 import time
      7 
      8 def producer():
      9     print('等人来买包子。。。')
     10     event.wait()
     11     event.clear() # 收到信号,开始做包子,将set清空
     12     print('开始做包子。。。。')
     13 
     14     time.sleep(5) #耗时5秒
     15     event.set() # 包子做好了,给consumer信号
     16 
     17 def consumer():
     18     print('好饿啊,去买个包子吃下。。。。')
     19     event.set() # 告诉producer
     20     print('等包子做好')
     21     time.sleep(2)
     22     event.wait() # 等包子做好
     23     print('包子真好吃。。。') # 收到信号
     24 
     25 event = threading.Event()
     26 
     27 t1 = threading.Thread(target=producer)
     28 t1.start()
     29 
     30 t2 = threading.Thread(target=consumer)
     31 t3.start()
    Code

    threading.Event(),有set, clear,wait等方法,方便在两个进程间通信。

    当event.set()时,得到信号,继续向下执行,不再wait(),但一旦设置了set()就会一直存在,所以在下一次set之前要先clear()。

  • 相关阅读:
    ASP.NET MVC Razor 视图引擎
    Asp.net MVC3 Razor语法小记
    @RenderPage用法
    余数算法
    Linux命令行下运行java.class文件
    Java学习---9.GUI编程
    Java学习---8.线程同步
    Java学习---7.多线程
    Java学习---6.常用的容器,流
    Java学习---5.数组
  • 原文地址:https://www.cnblogs.com/Andy963/p/5350215.html
Copyright © 2011-2022 走看看