python程序開啟的兩種方式

2022-06-13 13:06:20 字數 1936 閱讀 6017

1.1、方式一

from multiprocessing import process

import time

#方式一

def task(name):

print(f"my name is ,啟動時間")

time.sleep(2)

print(f"my name is ,停止時間")

if __name__ == '__main__':

# 1 建立乙個物件

p = process(target=task, args=('jason',))

# 容器型別哪怕裡面只有1個元素 建議要用逗號隔開 args=('jason',)

# 2 開啟程序

p.start() # 告訴作業系統幫你建立乙個程序 非同步

print('主程序')

'''windows作業系統下,建立程序一定要在main中建立

因為windows下建立的程序類似於模組匯入的方式

**會從上往下依次執行

'''

1.2、方式二
class myprocess(process):

def run(self):

print('hello bf girl')

time.sleep(1)

print('get out!')

if __name__ == '__main__':

p = myprocess()

p.start()

print('主程序')

總結:

1.3、join方法

from multiprocessing import process

import time

def task(name, n):

print('%s is running'%name)

time.sleep(n)

print('%s is over'%name)

if __name__ == '__main__':

# p1 = process(target=task, args=('x', 1))

# p2 = process(target=task, args=('c', 2))

# p3 = process(target=task, args=('v', 3))

# start_time = time.time()

# p1.start()

# p2.start()

# p3.start() # 僅僅是告訴作業系統要建立程序

# p.join() # 主程序等待子程序p執行結束之後再繼續往後執行

# p1.join()

# p2.join()

# p3.join()

start_time = time.time()

p_list =

for i in range(1, 4):

p = process(target=task, args=('子程序%s'%i, i))

p.start()

for p in p_list:

p.join()

print('主', time.time() - start_time)

1.4、程序之間資料相互隔離
from multiprocessing import process

money = 100

def task():

global money # 區域性修改全域性

money = 666

print('子',money)

if __name__ == '__main__':

p = process(target=task)

p.start()

p.join()

print(money)

2 2 開啟程序的兩種方式

python中的多執行緒無法利用多核優勢,如果想要充分地使用多核cpu的資源 os.cpu count 檢視 在python中大部分情況需要使用多程序。python提供了multiprocessing。multiprocessing模組用來開啟子程序,並在子程序中執行我們定製的任務 比如函式 該模組...

Python 開啟執行緒和程序的兩種方式

開銷 在發生開啟程序給作業系統時,作業系統需要申請記憶體空間給子程序,拷貝父程序位址空間到子程序,而開啟執行緒不需要這些步驟,因此開啟程序開銷遠大於執行緒,開啟速度為執行緒快 位址空間 程序之間位址空間是隔離的,開多個程序,每個程序都有不同的pid,但子程序的資料是來自於拷貝父程序的資料,程序之間存...

程序理論以及開啟子程序的兩種方式

程序理論 book 現代作業系統 為何開啟子程序需要放在main下面 因為執行到start他會向作業系統發起啟動子程序的訊號,然後作業系統會把整個 塊執行下,找到子程序要執行的任務,執行到最下面,又執行了start,又重複執行一次。執行緒可以不放在main下面是因為執行緒不用匯入主線程裡的東西,他們...