python多线程模块threading学习笔记(1)之添加多线程

参考链接: 【莫烦Python】Threading 学会多线程 Python
参考链接: 莫烦 多线程
参考链接: threading — 基于线程的并行

testThreading2_1.py

# 教学视频第2集
import threading  # 导入必要的包


def main():
    # 返回当前存活的 Thread 对象的数量。 返回值与 enumerate() 所返回的列表长度一致。
    print(threading.active_count())  # 1  # 2
    
if __name__ == '__main__':
    main()

testThreading2_2.py

# 教学视频第2集
import threading  # 导入必要的包


def main():
    # 返回当前存活的 Thread 对象的数量。 返回值与 enumerate() 所返回的列表长度一致。
    print(threading.active_count())  # 1  # 2
    
    
    # 以列表形式返回当前所有存活的 Thread 对象。 
    # 该列表包含守护线程,current_thread() 创建的虚拟线程对象和主线程。
    # 它不包含已终结的线程和尚未开始的线程。
    print(threading.enumerate())  
    # [<_MainThread(MainThread, started 11788)>]
    # [<_MainThread(MainThread, started 9832)>, <Thread(SockThread, started daemon 11316)>]
    
    
    
if __name__ == '__main__':
    main()

testThreading2_3.py

# 教学视频第2集
import threading  # 导入必要的包


def main():
    # 返回当前存活的 Thread 对象的数量。 返回值与 enumerate() 所返回的列表长度一致。
    print(threading.active_count())  # 1  # 2
    
    
    # 以列表形式返回当前所有存活的 Thread 对象。 
    # 该列表包含守护线程,current_thread() 创建的虚拟线程对象和主线程。
    # 它不包含已终结的线程和尚未开始的线程。
    print(threading.enumerate())  
    # [<_MainThread(MainThread, started 11788)>]
    # [<_MainThread(MainThread, started 9832)>, <Thread(SockThread, started daemon 11316)>]
    
    # 返回当前对应调用者的控制线程的 Thread 对象。
    # 如果调用者的控制线程不是利用 threading 创建,
    # 会返回一个功能受限的虚拟线程对象。
    print(threading.current_thread())
    # <_MainThread(MainThread, started 13720)>
    # <_MainThread(MainThread, started 15884)>
    
if __name__ == '__main__':
    main()
注意代码在python IDLE下和VSCOSE下运行会有不同,区别如下:


Windows PowerShell
版权所有 (C) Microsoft Corporation。保留所有权利。

尝试新的跨平台 PowerShell https://aka.ms/pscore6

加载个人及系统配置文件用了 941 毫秒。
(base) PS C:\Users\chenxuqi\Desktop\News4cxq\测试多线程>  & 'D:\Python\Python37\python.exe' 'c:\Users\chenxuqi\.vscode\extensions\ms-python.python-2021.1.502429796\pythonFiles\lib\python\debugpy\launcher' '55387' '--' 'c:\Users\chenxuqi\Desktop\News4cxq\测试多线程\testThreading2_3.py'
1
[<_MainThread(MainThread, started 3856)>]
<_MainThread(MainThread, started 3856)>
(base) PS C:\Users\chenxuqi\Desktop\News4cxq\测试多线程> 





Python 3.7.4 (tags/v3.7.4:e09359112e, Jul  8 2019, 20:34:20) [MSC v.1916 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license()" for more information.
>>> 
=== RESTART: C:\Users\chenxuqi\Desktop\News4cxq\测试多线程\testThreading2_3.py ===
2
[<_MainThread(MainThread, started 780)>, <Thread(SockThread, started daemon 12496)>]
<_MainThread(MainThread, started 780)>
>>> 

在这里插入图片描述

在这里插入图片描述

testThreading2_4.py

# 教学视频第2集
import threading  # 导入必要的包

def thread_job():
    print('This is an added Thread, number is %s' % threading.current_thread())
    # This is an added Thread, number is <Thread(Thread-1, started 12100)>
    # This is an added Thread, number is <Thread(CXQ20200910SCM, started 10904)>

def main():
    added_thread = threading.Thread(
        target=thread_job,
        name = 'CXQ20200910SCM'
    )
    # target 是用于 run() 方法调用的可调用对象。默认是 None,表示不需要调用任何方法。
    # name 是线程名称。默认情况下,由 "Thread-N" 格式构成一个唯一的名称,其中 N 是小的十进制数。
    
    
    added_thread.start()
    # start(),开始线程活动。
    # 它在一个线程里最多只能被调用一次。它安排对象的 run() 方法在一个独立的控制进程中调用。
    # 如果同一个线程对象中调用这个方法的次数大于一次,会抛出 RuntimeError 。


    
if __name__ == '__main__':
    main()
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值