多线程学习-时间改变事件

线程学习:根据时间变化触发其它线程

输出本地时间:

import time
 
localtime = time.localtime(time.time())
print ("本地时间为 :", localtime)

计算时间消耗:
方法一:time.sleep

import time
 
print "Start : %s" % time.ctime()
time.sleep( 5 )
print "End : %s" % time.ctime()

运行结果:
在这里插入图片描述

方法二:直接计算

在这里插入图片描述

循环终止:

for letter in 'Python':     # 第一个实例
   if letter == 'h':
      break
   print '当前字母 :', letter
  
var = 10                    # 第二个实例
while var > 0:              
   print '当前变量值 :', var
   var = var -1
   if var == 5:   # 当变量 var 等于 5 时退出循环
      break
 
print "Good bye!"

实例:第一个线程中获取当前时间,判断当前时间3秒之后,触发“事件” 对象。在另
一个线程中,作为数学考试结束的判断变量,否则一直处于考试中,并打印。

import threading#导入线程类
import time     #导入时间类

class timethread(threading.Thread):#定义事件监听类继承于Thread类
    def run(self):
        time.sleep(3) #延时3秒
        if_test.set()# 设置事件响应

class testthread(threading.Thread):#自定义线程类继承于Thread类
    def run(self):
        while(True):                 #循环检测
            print("考试中")           #未触发时输出考试状态
            time.sleep(1)            #每秒输出一次
            if if_test.is_set():      #如果响应则输出考试结束并跳出循环
                print("考试结束")   
                break              
#主线程
if __name__=='__main__':
    #重定义
    if_test=threading.Event()
    #创建线程1和线程2并传入参数
    x1 = timethread() 
    x2= testthread() 
    #开启线程
    x1.start() 
    x2.start() 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值