• 技术文章 >Python技术 >Python基础教程

    python线程事件Event的原理

    小妮浅浅小妮浅浅2021-08-23 09:30:24原创2420

    原理分析

    1、事件event中有一个全局内置标志Flag,值为True或False。

    2、使用wait函数的线程将处于堵塞状态。此时,Flag是指False。

    直到其他线程调用set函数将全球标志Flag放置为True,堵塞的线程将立即恢复运行,并使用isSet函数检查当前Flag状态。

    实例

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    14

    15

    16

    17

    18

    19

    20

    21

    22

    23

    24

    25

    26

    27

    28

    29

    30

    31

    32

    33

    34

    35

    36

    37

    38

    39

    40

    41

    42

    43

    44

    45

    46

    47

    48

    49

    50

    51

    52

    53

    54

    55

    56

    57

    58

    59

    60

    61

    62

    # !usr/bin/env python

    # -*- coding:utf-8 _*-

    # 导入线程模块

    import threading

      

    # 创建event事件

    eEvent = threading.Event()

      

    def get_girl_friend(id):

        print("单身狗{}都准备完毕,内置Flag状态:{}.....".format(id,eEvent.isSet()))

        eEvent.wait()

        print("单身狗%d告别单身....."%id)

      

      

    if __name__ == "__main__":

      

        thread_list = list()

      

        for i in range(1,11):

            # 创建并初始化线程

            t = threading.Thread(target=get_girl_friend,args=(i,))

            # 启动线程

            t.start()

            # 将线程句柄添加list列表中

            thread_list.append(t)

      

        # 所有线程准备完毕,将event内置Flag设置为True,恢复正在阻塞的线程

        eEvent.set()

      

        # 遍历列表,阻塞主线程

        for t in thread_list:

            # 阻塞主线程,等待所有子线程结束

            t.join()

      

        print("程序结束!")

      

      

    '''

    输出结果:

      

    单身狗1都准备完毕,内置Flag状态:False.....

    单身狗2都准备完毕,内置Flag状态:False.....

    单身狗3都准备完毕,内置Flag状态:False.....

    单身狗4都准备完毕,内置Flag状态:False.....

    单身狗5都准备完毕,内置Flag状态:False.....

    单身狗6都准备完毕,内置Flag状态:False.....

    单身狗7都准备完毕,内置Flag状态:False.....

    单身狗8都准备完毕,内置Flag状态:False.....

    单身狗9都准备完毕,内置Flag状态:False.....

    单身狗10都准备完毕,内置Flag状态:False.....

    单身狗5告别单身,内置Flag状态:True.....

    单身狗6告别单身,内置Flag状态:True.....

    单身狗7告别单身,内置Flag状态:True.....

    单身狗1告别单身,内置Flag状态:True.....

    单身狗8告别单身,内置Flag状态:True.....

    单身狗10告别单身,内置Flag状态:True.....

    单身狗4告别单身,内置Flag状态:True.....

    单身狗9告别单身,内置Flag状态:True.....

    单身狗3告别单身,内置Flag状态:True.....

    单身狗2告别单身,内置Flag状态:True.....

    程序结束!

    '''

    以上就是python线程事件Event的原理,希望对大家有所帮助。更多Python学习指路:python基础教程

    本文教程操作环境:windows7系统、Python 3.9.1,DELL G3电脑。

    专题推荐:python线程事件 event
    上一篇:python线程中Condition的原理 下一篇:python建造者模式是什么

    相关文章推荐

    • 什么是网络协议• python中的去除重复项的操作• python中少见的函数map()和partial()• python的sort()排序方法• Python中的文件读写-理论知识

    全部评论我要评论

    © 2021 Python学习网 苏ICP备2021003149号-1

  • 取消发布评论
  • 

    Python学习网