from threading import Thread
from multiprocessing import Process
import os

def work():
    print(\'hello\')

if __name__ == \'__main__\':
    #在主进程下开启线程
    t=Thread(target=work)
    t.start()
    print(\'主线程/主进程\')
    \'\'\'
    打印结果:
    hello
    主线程/主进程
    \'\'\'

    #在主进程下开启子进程
    t=Process(target=work)
    t.start()
    print(\'主线程/主进程\')
    \'\'\'
    打印结果:
    主线程/主进程
    hello
    \'\'\'

1、开启速度(线程快)

from threading import Thread
from multiprocessing import Process
import os

def work():
    print(\'hello\',os.getpid())

if __name__ == \'__main__\':
    #part1:在主进程下开启多个线程,每个线程都跟主进程的pid一样
    t1=Thread(target=work)
    t2=Thread(target=work)
    t1.start()
    t2.start()
    print(\'主线程/主进程pid\',os.getpid())

    #part2:开多个进程,每个进程都有不同的pid
    p1=Process(target=work)
    p2=Process(target=work)
    p1.start()
    p2.start()
    print(\'主线程/主进程pid\',os.getpid())

线程pid相同,进程则不同

from  threading import Thread
from multiprocessing import Process
import os
def work():
    global n
    n=0
    print(\'%s  子进程\'%(n))
if __name__ == \'__main__\':
    # n=100
    # p=Process(target=work)
    # p.start()
    # p.join()
    # print(\'主\',n) #毫无疑问子进程p已经将自己的全局的n改成了0,但改的仅仅是它自己的,查看父进程的n仍然为100


    n=100
    t=Thread(target=work)
    t.start()
    t.join()
    print(\'主\',n) #查看结果为0,因为同一进程内的线程之间共享进程内的数据

线程共享数据,进程彼此隔离

收藏 打印