併發程式設計 開啟程序方式 檢視程序pid

2022-05-04 17:06:08 字數 1990 閱讀 8807

1.開啟程序的兩種方式

方式一:

from multiprocessing import

process

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 import

process

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 import

process

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.併發 程序 看起來多個任務是同時執行即...