IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> python2021.9.8 多任务 -> 正文阅读

[Python知识库]python2021.9.8 多任务

1.并行:给每个cpu安排一个任务;简单说就是软件(任务)肩并肩同时进行

2.并发:cpu交替执行任务(软件)并不是真正意义上的同时进行,时间隔可能是0.1毫秒

一丶线程

1.线程是cpu调度的基本单位

def sing():
    for i in range(5):

        print('唱歌中')
        time.sleep(0.1)


def dance():
    for i in range(5):

        print('跳舞中')
        time.sleep(0.1)


if __name__ == '__main__':

    # 在主线程中创建子线程   target后面只能跟函数名字
    sing_thread = threading.Thread(target=sing)
    dance_thread = threading.Thread(target=dance)

    #启动线程  只有start启动了,线程才开始执行。才会出现在活动线程列表中
    sing_thread.start()
    dance_thread.start()

总结:线程的执行是无序的!由cpu来调度执行

2.线程执行任务传参数

import threading

def sing(num):
    for i in range(num):
        print('唱歌')

def student(name, age):
    print(name, age)


if __name__ == '__main__':
    # 创建子线程
    # 方法1:args传参   必须是元组的形式
    thread_sing = threading.Thread(target=sing, args=(3,))
    thread_sing.start()

    # 方法2:kwargs  必须以字典的形式传参,同时字典的key必须跟函数接收参数名相同
    thread_student = threading.Thread(target=student, kwargs={'name': '张三', 'age': 18})
    thread_student.start()

3.注意点

3.1 线程的执行是无序的!

3.2 主线程会等待所有的子线程结束后再退出

3.3 线程之间共享全局变量

? ? ? ? 解决方案:设置守护主线程!? ?主线程退出后子线程直接销毁,不执行子线程中的代码

#创建子线程
thread_sing = threading.Thread(target=sing)

#守护主线程  一旦主线程退出,子线程立马销毁结束
thread_sing.setDaemon(True)

4. 自定义线程

? ? ? ? 自定义线程类调用任务都需要通过run方法。而run方法在线程调用完start方法以后会自动调用run方法

  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2021-09-09 11:42:11  更:2021-09-09 11:44:33 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 13:26:16-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码