python并发任务(八) 多线程必须放在main中

 多线程时可以理解为重新克隆非代码运行,这个克隆的代码会被全部执行,因此如果不想被执行的必须放在:

if   __name__  ==  "__main__" :
 
import multiprocessing
import threading
import os

print("1----------", os.getpid())

def print_cube(num):
    print("print_cube ", os.getpid())
    print("Cube: {}".format(num * num * num))


print("2----------", os.getpid())

def print_square(num):
    print("print_square ", os.getpid())
    print("Square: {}".format(num * num)) 

print("3----------", os.getpid())

if __name__ == "__main__":
    print(os.getpid())
    # creating processes 
    p1 = multiprocessing.Process(target=print_square, args=(10, )) 
    p2 = multiprocessing.Process(target=print_cube, args=(10, )) 

    # p1 = threading.Thread(target=print_square, args=(10, )) 
    # p2 = threading.Thread(target=print_cube, args=(10, )) 

    # starting process 1&2
    p1.start() 
    p2.start() 

    # wait until process 1&2 is finished 
    p1.join() 
    p2.join() 

    # both processes finished 
    print("Done!")

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章