Python---多任务编程---线程--进程--协程

多任务编程     注:Windows下存在问题,需要在Linux系统下测试

线程

  概念

  •    并发:指的是任务数多余cpu核数,通过操作系统的各种任务调度算法,实现用多个任务“一起”执行(实际上总有一些任务不在执  行,因为切换任务的速度相当快,看上去一起执行而已)
  • 并行:指的是任务数小于等于cpu核数,即任务真的是一起执行的

  线程的使用

  •    导入模块:import threading
  •    补充:import time    time.sleep(N)  暂停N秒
  •   启动: 线程对象.start( )

   线程参数说明:Thread([group [, target [, name [, args [, kwargs]]]]])

  •     group: 线程组,目前只能使用None
  •     target: 执行的目标任务名
  •     args: 以元组的方式给执行任务传参
  •     kwargs: 以字典方式给执行任务传参
  •     name: 线程名,一般不用设置

   查看当前执行的线程:threading.current_thread( )
   获取活动线程列表:threading.enumerate()

线程的注意

  1.    线程之间是无序的
  2.    主程序会等所有子线程结束后才结束
  3.    如果需要可以设置守护主线程
  4.    线程间共享全局变量

守护主线程

   方式1:线程定义时,传参daemon=True 守护主线程
   方式2:线程 . setDaemon(True)
   (设置成为守护主线程,主线程退出后子线程直接销毁不再执行子线程的代码
  自定义线程类)

线程代码示例

import threading


# 自定义线程类
class MyThread(threading.Thread):
    # 通过构造方法取接收任务的参数
    def __init__(self, info1, info2):
        # 调用父类的构造方法
        super(MyThread, self).__init__()
        self.info1 = info1
        self.info2 = info2

    # 定义自定义线程相关的任务
    def test1(self):
        print(self.info1)

    def test2(self):
        print(self.info2)

    # 通过run方法执行相关任务
    def run(self):
        self.test1()
        self.test2()


# 创建自定义线程
my_thread = MyThread("测试1", "测试2")
# 启动
my_thread
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值