Python线程

 Threading用于提供线程相关的操作,线程是应用程序中工作的最小单元。

#!/usr/bin/env python3
# -*- coding:utf-8 -*-
import threading
import time
  
def show(arg):
    time.sleep(1)
    print('thread'+str(arg))

for i in range(10):
    t = threading.Thread(target=show, args=(i,))
    t.start()

print('main thread stop')

# 结果:
main thread stop
thread0
thread2
thread1
thread4
thread3
thread8
thread5
thread9
thread6
thread7

上述代码创建了10个"前台"线程,然后控制器交给CPU,CPU根据指定算法进行调度,分片执行指令。

更多方法:

start        线程准备就绪,等待CPU调度
setName      为线程设置名称
getName      获取线程名称
setDaemon    设置为后台线程或前台线程(默认),如果是后台线程,主线程执行过程中,后台线程也在进行,主线程执行完毕后,后台线程不论成功与否,均停止。
             如果是前台线程,主线程执行过程中,前台线程也在进行,主线程执行完毕后,等待前台线程也执行完成后,程序停止
join         逐个执行每个线程,执行完毕后继续往下执行,该方法使得多线程变得无意义
run          线程被cpu调度后自动执行线程对象的run方法
import threading


def func(args):
    print(args)

t = threading.Thread(target=func, args=("123",))
t.setDaemon(True)       # 默认False True表示主线程不等此子线程
t.start()               # 不代表当前线程会被立即执行
# t.join()                # 表示主线程到此,等待....直到子线程执行完毕。  t.join(n) 带参数,表示主线程在此最多等待n秒


# func("123")
print("end")
print("end")
print("end")
print("end")
print("end")
print("end")
练习案例

相关文章:

  • 2022-12-23
  • 2021-10-19
  • 2021-07-27
  • 2022-12-23
  • 2021-12-04
  • 2021-07-30
猜你喜欢
  • 2022-12-23
  • 2021-09-30
  • 2022-01-30
  • 2021-05-18
  • 2019-03-28
  • 2022-12-23
  • 2021-12-25
相关资源
相似解决方案