线程
1,线程与进程
进程:执行中的程序。进程可以处理一个任务。对于一个人来说一个人就是一个进程。进程被包含着线程。
线程:轻量级的进程。一个时间点只做一件事。一个人可以做的多件事情,每一件事情都是一个线程。
2,线程是CPU调度的最小单位。进程是资源分配的最小单位
3,开启线程的时空开销 都比 开启进程要小,且cpu在线程之间切换比在进程之间切换快。
4,一个程序中 可以同时有多进程和线程
1)调用模块开启线程
import os import time from threading import Thread def func(): # 子线程 time.sleep(1) print('hello world',os.getpid()) thread_lst = [] for i in range(10): t = Thread(target=func) t.start() thread_lst.append(t) [t.join() for t in thread_lst] print(os.getpid()) # 主线程
2)调用类开启线程
import os import time from threading import Thread class MyThread(Thread): count = 0 # 静态属性 def __init__(self,arg1,arg2): super().__init__() self.arg1 = arg1 self.arg2 = arg2 def run(self): MyThread.count += 1 time.sleep(1) print('%s,%s,%s,%s'%(self.arg1,self.arg2,self.name,os.getpid())) for i in range(10): t = MyThread(i,i*'*') t.start() print(t.count)