1、进程VS线程
进程
对于操作系统来说,一个任务就是一个进程。
进程一个程序的执行实例就是一个进程,每一个进程提供执行程序所需的所有资源。
一个进程包含一个主线程,0或者多个子线程。
线程
线程是执行的最小单位。
线程不分配自己的资源,所有线程共享进程的资源,线程之间互不影响。
线程的种类
主线程
子线程
守护线程
2、多线程
Python里面多线程不能利用多个CPU,它只能在一个CPU上运行。
Python多线程使用threading模块实现
import threading #线程模块 import time def run(url): time.sleep(2) print(url) print('running...') def eat(): print('吃饭') start_time = time.time()#程序开始运行时的时间戳 threads = [] for i in range(10): # 实例化一个线程,run是函数名 t = threading.Thread(target=run,args=('http://www.baidu.com',)) # 一个参数一定加个逗号 t.start()#启动这个线程 threads.append(t)#把所有子进程加进threads列表 # for thread in threads: # thread.join()#使用join,主线程就会等待子线程执行结束再往下执行 #使用上面join的方式或者while循环的方式 # 让主线程等待子线程执行完成再执行下面的程序 while threading.active_count() != 1: #当线程数为1,才结束循环 pass print(threading.active_count()) #当前线程数 end_time = time.time()#程序结束时的时间戳 print('运行时间',end_time-start_time) #这个时间是主线程执行完代码的时候,不包含子线程执行时间