day36 程序理論和建立及join方法和殭屍程序

2021-10-23 16:32:31 字數 3228 閱讀 5382

上節課的內容:

01 作業系統

系統介面

作業系統核心

02 多道技術

空間上的復用:復用記憶體的空間

1、多道/個程式的**都存入記憶體

2、記憶體空間是物理隔離的

時間上的復用:復用cpu的時間

cpu的切換

1、任務的執行遇到io阻塞=》提公升效率

2、任務占用cpu時間過長=》降低效率

如果我們的核心目標是想讓多個任務併發起來:那麼無論是遇到io還是沒有遇到io都應該讓cpu在多個任務之間切換起來

如果我們的核心目標是想讓多個任務的執行效率提公升:我們應該只控制乙個任務在遇到io情況下切換到另外乙個任務

今日內容:

01 程序理論

併發、並行、序列

程序執行的三種狀態:(執行態、就緒態)非阻塞態、阻塞態

呼叫任務的兩種方式:同步呼叫、非同步呼叫

02 程序的使用

process

1、什麼是程序

程序是乙個程式執行的過程

2、什麼是程式

程式就是一堆**檔案

3、序列、併發、並行

並行:多個任務是真的在同時執行,只有多個cpu才有並行的概念

併發:多個任務看起來是在同時執行

4、程序的建立

windows:createprocess

linux:fork

5、程序的終止

1. 正常退出

5. 被其他程序殺死(taskill /f /pid 3333

)6、程式執行的三種狀態

執行態就緒態

阻塞態優化程式效率的核心法則:降低io操作(硬碟io、網路io)

記憶體》本地硬碟-》網路io

7、程序執行的三種狀態:(執行態、就緒態)非阻塞態、阻塞態

呼叫任務的兩種方式:同步呼叫、非同步呼叫

import os

import time

print

(os.getpid())

time.sleep(

1000

)開啟程序的方式一:

import time

import os

from multiprocessing import process

deftask

(n, tag)

:print

("%s is running"

% tag)

time.sleep(3)

print

("%s is done"

% tag)

if __name__ ==

'__main__'

: p1 = process(target=task, args=(5

,"子程序1"))

p2 = process(target=task, args=(3

,"子程序2"))

p3 = process(target=task, args=(2

,"子程序3"))

p1.start(

) p2.start(

) p3.start(

)print

("主:%s。。。"

% os.getpid())

開啟程序的方式二:

import time

import os

from multiprocessing import process

class

myprocess

(process)

:def

__init__

(self,tag)

:super()

.__init__(

) self.tag = tag

defrun(self)

->

none

:print

("%s is running"

% self.tag)

time.sleep(3)

print

("%s is done"

% self.tag)

if __name__ ==

'__main__'

: p1 = myprocess(

"程序1"

) p2 = myprocess(

"程序2"

) p3 = myprocess(

"程序3"

) p1.start(

)# p1.run()

p2.start(

)# p2.run()

p3.start(

)# p3.run()

print

("主:%s。。。"

% os.getpid(

))

import time

import os

from multiprocessing import process

deftask

(n, tag)

:print

("%s is running"

% tag)

time.sleep(n)

print

("%s is done"

% tag)

if __name__ ==

'__main__'

: p1 = process(target=task, args=(3

,"子程序1"))

p2 = process(target=task, args=(4

,"子程序2"))

p3 = process(target=task, args=(5

,"子程序3"))

# start=time.time()

p1.start(

) p2.start(

) p3.start(

) p1.join(

)# p3.join()

# p2.join()

print

(p1.pid)

print

(p2.pid)

print

(p3.pid)

# print(time.time() - start)

print

("主:%s。。。"

% os.getpid(

))

day36 外星日曆

某星系深處發現了文明遺跡。他們的計數也是用十進位制。他們的文明也有日曆。日曆只有天數,沒有年 月的概念。有趣的是,他們也使用了類似 星期 的概念,只不過他們的乙個星期包含了9天,為了方便,這裡分別記為 a,b,c.h,i。從一些資料上看到,他們的23日是星期e 他們的190日是星期a 他們的3432...

每日演算法 day 36

那些你早出晚歸付出的刻苦努力,你不想訓練,當你覺的太累了但還是要咬牙堅持的時候,那就是在追逐夢想,不要在意終點有什麼,要享受路途的過程,或許你不能成就夢想,但一定會有更偉大的事情隨之而來。mamba out 2020.3.22 沒話說 只能說資料太水 有的直接取模過不了樣例就能ac,感覺是正確的做法...

day 36 初始前端 html語言

參考部落格進行學習 html標籤 特徵 1.空白摺疊現象 2.對空格和換行不敏感 3.標籤要嚴格封閉 p標籤的巢狀 多注意!html中 1.行內標籤 1 在一行內顯示 span strong em i del a 2 不能設定寬高 預設的寬和高 是內容填充 1.1行內塊標籤 img input 1 ...