欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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开几个线程

开线程时注意木桶效应,不要让整个系统都等太慢的那个最慢的线程,从而拖垮整个系统的性能