python并发和性能
一、并发和并行
1.多任务:电脑上同时运行多个程序
2.并发和并行
并发:任务数>cpu核数,一个cpu快速的在各个任务之间切换,好像多个任务同时在执行。
并行:任务数<=cpu核数,无需切换任务,真正的同时运行,没有间断没有切换!
3.串行:执行完一个任务再执行下一个任务
4.同步和异步
同步(同步协调):指线程在访问某一资源时,获得资源的返回结果之后才会执行其他操作;
异步:无论是否取到返回结果,都进行下步操作,当有了资源返回结果,系统自会通知线程;
二、线程
两个事情同时做---多线程
1.使用threading模块实现多线程
创建线程对象:t1=threading.Thread(target=func),t2=threading.Thread(target=func)
执行线程1:t1.start()
执行线程2:t2.start()
堵塞线程:t1.join(),运行完该线程再继续
Thread类提供了以下方法:
表示线程活动的方法 run() 、启动线程方法start()、设置主线程会等待time秒后再往下执行,time默认为子线程结束,多个子线程之间设置的值叠加
threading.current_thread();返回当前正在执行的线程
threading.enumerate();当前运行的所有线程对象返回list
threading.active_count();返回当前执行线程的数量
2.多线程实现多任务
继承Thread类重写run()方法
import threading
class RequestThread(threading.Thread):
def run(self):
要执行的任务、方法
若要传参则需要重写init方法
t.RequestThread()
t.start()
3.多线程-共享全局变量
三、进程
四、
五、