• Python并发编程—线程


    线程编程(Thread)

    线程基本概念

    1.什么是线程
    【1】 线程被称为轻量级的进程
    【2】 线程也可以使用计算机多核资源,是多任务编程方式
    【3】 线程是系统分配内核的最小单元
    【4】 线程可以理解为进程的分支任务

    2.线程特征
    【1】 一个进程中可以包含多个线程
    【2】 线程也是一个运行行为,消耗计算机资源
    【3】 一个进程中的所有线程共享这个进程的资源
    【4】 多个线程之间的运行互不影响各自运行
    【5】 线程的创建和销毁消耗资源远小于进程
    【6】 各个线程也有自己的ID等特征

    threading模块创建线程

    【1】 创建线程对象

    from threading import Thread 

    t = Thread()

    • 功能:创建线程对象
    • 参数:target 绑定线程函数
    •    args 元组 给线程函数位置传参
    •    kwargs 字典 给线程函数键值传参

    【2】 启动线程

    t.start()

    【3】 回收线程

    t.join([timeout])

     1 import threading
     2 from time import sleep
     3 import os
     4 
     5 a = 1
     6 
     7 
     8 # 线程函数
     9 def music():
    10     for i in range(3):
    11         sleep(2)
    12         print(os.getpid(), "播放黄河大合唱")
    13     global a
    14     print("a = ", a)
    15     a = 10000
    16 
    17 
    18 # 创建线程对象
    19 t = threading.Thread(target=music)
    20 t.start()  # 启动线程
    21 
    22 for i in range(4):
    23     sleep(1)
    24     print(os.getpid(), "播放葫芦娃")
    25 
    26 t.join()  # 回收线程
    27 
    28 # 7464 播放葫芦娃
    29 # 7464 播放黄河大合唱
    30 # 7464 播放葫芦娃
    31 # 7464 播放葫芦娃
    32 # 7464 播放黄河大合唱
    33 # 7464 播放葫芦娃
    34 # 7464 播放黄河大合唱
    35 # a =  1
    线程使用示例1
     1 from threading import Thread
     2 from time import sleep
     3 import os
     4 
     5 # 含有参数的线程函数
     6 def fun(sec,name):
     7   print("线程函数参数",os.getpid())
     8   sleep(sec)
     9   print("%s 线程完毕"%name)
    10 
    11 # 创建多个线程
    12 jobs = []
    13 for i in range(5):
    14   t = Thread(target = fun,args=(2,),
    15              kwargs={'name':'T%d'%i})
    16   jobs.append(t)
    17   t.start()
    18 
    19 for i in jobs:
    20   i.join()
    21   
    22 # 线程函数参数 9224
    23 # 线程函数参数 9224
    24 # 线程函数参数 9224
    25 # 线程函数参数 9224
    26 # 线程函数参数 9224
    27 # T2 线程完毕
    28 # T1 线程完毕
    29 # T0 线程完毕
    30 # T3 线程完毕
    31 # T4 线程完毕
    现场使用示例2
  • 相关阅读:
    选美大赛示例 你会选谁
    jQuery简单的手风琴菜单
    jquery根据name属性查找
    js鼠标滚轮滚动图片切换效果
    图片动画横条广告带上下滚动
    淘宝顶部导航菜单
    下雪了堆雪人去 下雪特效
    多彩图标按钮动画下拉菜单
    JavaScript实现HTML5烟花特效
    MySQL:参数wait_timeout和interactive_timeout以及空闲超时的实现【转】
  • 原文地址:https://www.cnblogs.com/maplethefox/p/10989193.html
Copyright © 2020-2023  润新知