第二十一 python性能与多并发
1.多任务 同时运行多个任务(同时登录qq音乐,看视频,游览网页)
2.并发 (任务数多余cpu核数,cpu快速切换,多个任务对应一个cpu内核) 六个人同时问老师问题,老师一个个回答
3.并行 (一个任务对应一个cpu内核)六个学生问六个老师 老师相当于cpu,老师同时回答
4. 串行 先执行任务A,在执行任务B
5.同步 运行完一个任务在做另一个任务
6.异步 多个任务同时运行互不影响
线程:打开请求是一个进程,每个聊天窗口是一个线程 threading
1.创建线程 threading.Thread(target=func) 参数target为指定运行的函数
run() 用以表示线程活动的方法
start() 启动线程活动
join(time) 设置主线程在等待time秒后再向下执行 设置时间可以叠加
jsAlive()返回线程是否活动
getName() 返回线程名
setName() 设置线程名
举例--两个线程,线程一运行和线程二同时运行
import time
import threading
def func():
for i in range(5):
print(2)
time.sleep(1)
def func1():
for i in range(10):
print(3)
time.sleep(1)
def main():
t1 = threading.Thread(target=func)
t2 = threading.Thread(target=func1)
s = time.time()
t1.start()
t2.start()
print(threading.enumerate()) # 活动线程
print(threading.active_count()) # 活动线程的个数
t1.join() # 线程不运行结束,不会运行下面的代码
t2.join()
e = time.time()
print(5555)
print(e-s)
if __name__ == '__main__':
main()