1.開啟程序的兩種方式
方式一:
from multiprocessing importprocess
import
time
deftask(name):
print('
%s is running
' %name)
time.sleep(3)
print('
%s is done
' %name)
if__name__ == '
__main__':
#process(target=task,kwargs=)
p = process(target=task,args=('
子程序'
,)) p.start()
#僅僅只是給作業系統傳送乙個型號,給我開啟乙個子程序
print('主'
)#執行這個程式就會產生乙個父程序,在父程序執行過程當中,發乙個系統呼叫,開啟兩個程序
方式二:
from multiprocessing importprocess
import
time
class
myprocess(process):
def__init__
(self,name):
super().
__init__() #
為了防止父類中還有,有用的方法,所以要重用一下
self.name =name
def run(self): #
函式名必須用run
print('
%s is running
' %self.name)
time.sleep(3)
print('
%s is done
' %self.name)
if__name__ == '
__main__':
p = myprocess('
子程序1')
p.start()
#預設就掉用process 下面的run方法
print('主'
)'''
主程序為什麼要等子程序結束在結束呢?
1.所有的子程序都要進入到殭屍狀態
2.殭屍程序在父程序一直不死的情況下,會占用系統id,這樣系統在執行程序的時候就可能啟動不啟來
孤兒程序:是子程序沒有死,父程序先死了,但是這種程序是無害的。
'''
2.檢視程序pid
from multiprocessing importprocess
import
time,os
deftask():
print('
%s is running,parent id is <%s>
' %(os.getpid(),os.getppid()))
time.sleep(3)
print('
%s is done,parent id is <%s>
' %(os.getpid(),os.getppid()))
if__name__ == '
__main__':
p = process(target=task,)
p.start()
print('主'
,os.getpid(),os.getppid())
#windows檢視程序的id號:tasklist | findstr pycharm(程序)
#linux檢視程序的id號:ps aux |grep pycharm(程序)
'''列印結果
主 1996 13980 #13980是pycharm的id號
12528 is running,parent id is <1996>
12528 is done,parent id is <1996>
'''
併發程式設計(三) 開啟程序
上一節說了那麼多關於程序的東西,那這一節就嘗試著自己開啟一下程序 這一節我們可以嘗試著使用multiprocessing模組開啟程序 通過掌握multiprocessing模組開啟程序的兩種方式 是我們在後面的學習的基礎,所以一定要好好看 首先,由於語言特點,python的多執行緒沒辦法使用多核優勢...
程序 與 併發(程序開啟方式,互斥鎖)
程序 正在執行的程式,用來描述程式執行的過程 虛擬概念 程式 指的是一堆 程序 程式的執行過程 作業系統 用於協調 管理 控制,控制計算機 1.能夠將複雜的硬體封裝成簡單的介面給使用者使用 2.能夠將競爭的任務變得有序 併發 多個任務看起來是同時執行的 多道技術 時間上的復用 多個程式復用cpu的時...
python併發程式設計 程序,併發
1.程序是乙個正在執行的程式,或者說是程式執行的過程,程序是個抽象概念 程序起源於作業系統,是作業系統最核心的概念,作業系統所有其他的概念都是圍繞程序展開 研究程序最底層就是在研究作業系統底層 2.序列 程序 乙個任務完完整整的執行完畢後,在執行下乙個任務 3.併發 程序 看起來多個任務是同時執行即...