python进程与多线程对比

多进程与多线程对比
threading:有GIL锁(多线程)
multiprocessing:多进程

from multiprocessing import Process
import threading
import time
lock = threading.Lock()
 
def run(info_list,n):
    lock.acquire()
    info_list.append(n)
    lock.release()
    print('%s\n' % info_list)
    
if __name__=='__main__':
    info = []
    for i in range(10):
        #target为子进程执行的函数,args为需要给函数传递的参数 
        p = Process(target=run,args=[info,i])
        p.start()
        p.join()
    time.sleep(1) #这里是为了输出整齐让主进程的执行等一下子进程
    print('------------threading--------------')
    for i in range(10):
        p = threading.Thread(target=run,args=[info,i])
        p.start()
        p.join()

[0]

[1]

[2]

[3]

[4]

[5]

[6]

[7]

[8]

[9]

------------threading--------------
[0]

[0, 1]

[0, 1, 2]

[0, 1, 2, 3]

[0, 1, 2, 3, 4]

[0, 1, 2, 3, 4, 5]

[0, 1, 2, 3, 4, 5, 6]

[0, 1, 2, 3, 4, 5, 6, 7]

[0, 1, 2, 3, 4, 5, 6, 7, 8]

[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

猜你喜欢

转载自blog.csdn.net/fan15945028042/article/details/89021056