Python线程1

匆匆过客 提交于 2019-11-29 08:11:38
#一个程序有多个进程,而一个进程可以有多个线程
'''
提到了并发,那又不得不和并行作比较

并发是指在一段时间内同时做多个事情,比如在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)

#########################


易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!