python 线程编程 Treading

本文介绍了Python中的线程编程,包括线程之间的关系、如何创建和运行线程、线程的等待与守护、线程间通信及同步机制,如锁、信号量和队列的应用。通过实例讲解了线程的生命周期和并发执行的细节。
摘要由CSDN通过智能技术生成

python 线程编程 Treading

记录时间:2019/4/23

问题:

  1. python运行程序和各个线程之间什么关系?
  2. 如何来实例化一个线程?如何运行一个线程?需要注意什么?
  3. 面向对象编程中如何定义一个线程?
  4. 如何在主线程中等待各个子线程完成?
  5. 如何设置守护线程?即主线程运行完之后守护线程自动退出?
  6. 线程之间如何进行最简单的标志位通讯?
  7. 线程中如何定义锁?多个锁如何来使用?
  8. 什么是信号量?如何定义信号量?在什么场景下会使用信号量?
  9. 队列如何使用?可以和线程之间产生什么互动?

解答:

1. python运行的主程序和各个线程之间什么关系?

python中的主程序作为 主线程,而在程序中定义地称为 子线程,多个线程并发执行。

2. 如何来实例化一个线程?如何运行一个线程?需要注意什么?

使用 mythread = threading.Thread( )来声明一个线程; 声明之后使用 .start()方法来启动这个进程; 需要注意,声明时参数必须用元祖的形式传入

  • 使用 thread.Threading( )来声明一个线程
    # 定义线程运行的函数
    def run(n):
        print("task", n)
        time.sleep(2)
        print("task done",n)
    
    # 来实例化线程
    t1 = threading.Thread(target=run, args=("t1",)) # args 必须以元祖的形式传入
    
    # 启动线程
    t1.start()
    

3. 面向对象编程中如何定义一个线程?

要定义一个线程,需要根据 Threading.Thread 作为父类来定义一个子类,在构造函数中将父类重构,并且定义 run() 成员函数,来说明当线程运行的程序。

  • 定义 线程类
    # 定义线程类
    class MyThread(threading.Thread):
        # 构造函数
        def __init__(self,n,sleep_time):
            super(MyThread, self).__init__() # 先来使用 super()完成父类的初始化
            self.n = n
            self.sleep_t
  • 6
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值