python多进程与多线程
程序员文章站
2022-07-12 21:34:50
...
首先基础知识: 关于并行串行与并发:
https://blog.csdn.net/u012768459/article/details/80926112
即不使用多进程或多线程(串行实现)和用单进程运 行的效果一样
1个进程之下有>=一个线程
进程:
Linux/unix下用OS模块
windows下用multiprocessing模块
线程:
import threading
def thread_func(x):
# 自己加sleep和其它复杂操作看效果
print('%d\n' % (x * 100))
if __name__=='__main__':
threads = []
for i in range(5):
threads.append(threading.Thread(target = thread_func, args = (100, )))#args后为一个元组用来传线程函数参数
print(threads)
for thread in threads:#thresds中装的是threading.Thread对象,不是字符串
print(type(thread))
thread.start()
for thread in threads:#调用join()的作用是确保thread子线程执行完毕后才能执行下一个线程。\
# 如果没有调用join()函数,故没有这个限制,所有线程执行顺序都不定
thread.join()
在当前进程中开多个线程用join()可以在所有线程都完成时,再退出当前进程
一般有几个cpu开几个线程
开线程时注意木桶效应,不要让整个系统都等太慢的那个最慢的线程,从而拖垮整个系统的性能