python学习之多任务,简单线程的实现
# 导入线程模块 import threading # 导入时间模块 import time def sing():print("我在唱歌")time.sleep(2) # 睡眠,以秒为单位print("唱完歌了") def dance():print("我在跳舞")time.sleep(2)print("跳完舞了") sing() dance()
2.多线程:同时运行多个线程
2.1线程和进程
进程:是操作系统进行资源分配的基本单位,每打开一个程序至少就会有一个进程
线程:是cpu调度的基本单位,每一个进程至少都会有一个线程,这个线程通常就是我们说的主线程
一个进程默认有一个线程,一个进程可以创建多个线程,线程是依附在进程里面的,没有进程就没有线程
导入线程模块
import threading
Thread线程类参数
target: 执行的任务名
args: 以元组的形式给任务传参
kwargs: 以字典的形式给函数传参
def sing(name):print(f"{name}在唱歌")time.sleep(2)print(f"{name}唱完歌了") def dance(name):print(f"{name}在跳舞")time.sleep(2)print(f"{name}跳完舞了") # 主程序入口 if __name__ == "__main__":# 1.创建子线程thread1 = threading.Thread(target=sing,args=('mike',)) #以元组的形式传参thread2 = threading.Thread(target=dance,args=('alice',))# 3.守护线程,必须放在start()前面:主线程执行结束,子线程也会跟着结束thread1.setDaemon(True)thread2.setDaemon(True)# 2.开启子线程thread1.start()thread2.start()# 4.阻塞主线程join():暂停的作用,等子线程执行结束后,主线程才会执行,必须放在start()后面thread1.join()thread2.join()# 5.获取线程名print(thread1.getName())print(thread2.getName())# 6.更改线程名thread1.setName("子线程一")thread2.setName("子线程二")print(thread1.getName())print(thread2.getName())print("完美谢幕,本次表演结束")