#一个程序有多个进程,而一个进程可以有多个线程
'''
提到了并发,那又不得不和并行作比较
并发是指在一段时间内同时做多个事情,比如在1点-2点洗碗、洗衣服等
而并行是指在同一时刻做多个事情,比如1点我左手画圆右手画方
两个很重要的区别就是“一段时间”和“同一时刻”.在操作系统中就是:
1)并发就是在单核处理中同时处理多个任务.(这里的同时指的是逻辑上的同时)
2)并行就是在多核处理器中同时处理多个任务.(这里的同时指的就是物理上的同时)
初学编程基本上都是单线程结构化编程,或者说是根本就接触不到线程这个概念
反正程序照着自己实现的逻辑,程序一步一步按照我们的逻辑去实现并且得到希望输出的结果
但随着编程能力的提高,以及应用场景的复杂多变,我们不得不要面临多线程并发编程
'''
import time
'''
start=time.perf_counter()
def worker():
print("worker")
time.sleep(1)
return;
if __name__ == "__main__":
for i in range(5):
worker()
end=time.perf_counter()
print(end-start)
这是没有使用线程,程序最后用时5.1秒
输出为
worker
worker
worker
worker
worker
5.1
'''
#我们来使用线程
#你会发现输出不确定
import threading
import time
start=time.perf_counter()
def worker():
print("test")
time.sleep(1)
#产生的是0到4的整数
for i in range(5):
t = threading.Thread(target=worker)
print(i)
#这才开始多线程
t.start()
end=time.perf_counter()
#activeCount此方法返回当前进程中线程的个数。返回的个数中包含主线程
#线程越多执行速度越快
#也就是说你那个%d越大,速度越快
print ("current has %d threads" % (threading.activeCount() - 1))
print(end-start)
#########################
来源:https://blog.csdn.net/qq_43776408/article/details/100665570