1.线程与进程
通俗解释:
对于操作系统来说,一个任务就是一个进程(Process),比如打开一个浏览器就是启动一个浏览器进程,打开一个记事本就启动了一个记事本进程,打开两个记事本就启动了两个记事本进程,打开一个Word就启动了一个Word进程。有些进程还不止同时干一件事,比如Word,它可以同时进行打字、拼写检查、打印等事情。在一个进程内部,要同时干多件事,就需要同时运行多个“子任务”,我们把进程内的这些“子任务”称为线程(Thread)。
总结:归纳起来,可以这样说.操作系统可以同时执行多个任务,每一个任务就是一个进程;进程可以同时执行多个任务,每一个任务就是一个线程。
2.单线程执行
3.多线程执行
4.守护线程
5.阻塞线程
6.并发测试框架
import threading THREAD_NUM = 10
ONE_WORKER_NUM = 10
# 总并发数是这两个变量的乘积
def test():
"""测试代码""" def working():
global ONE_WORKER_NUM
for i in ONE_WORKER_NUM:
test() def t():
global THREAD_NUM
Threads = []
for i in range(THREAD_NUM):
t = threading.Thread(target=working,name="T"+str(i))
t.setDaemon(True)
Threads.append(t)
for t in Threads:
t.start()
for t in Threads:
t.join() if __name__ == '__main__':
t()
7.实例
测试场景:每个账号并发10次抽奖次数请求
预期结果:分别统计每个账号的抽奖次数是否与期望值一致