程序章節練習

2021-10-14 13:19:05 字數 3017 閱讀 5643

1.程序之間的記憶體空間是共享的還是隔離的?下述**的執行結果是什麼?

from multiprocessing import process

n=100

#在windows系統中應該把全域性變數定義在if __name__ == '__main__'之上就可以了

defwork()

:global n

n=0print

('子程序內: '

,n)if __name__ ==

'__main__'

: p=process(target=work)

p.start(

) p.join(

)print

('主程序內: '

,n)子程序內:

0主程序內:

100

2.基於多程序實現併發的套接字通訊?

服務端

from socket import

*from multiprocessing import process

deftalk

(conn)

:while

true

:try

: data = conn.recv(

1024)if

not data:

break

conn.send(data.upper())

except connectionreseterror:

break

conn.close(

)def

sever

(ip,port)

: sever = socket(af_inet, sock_stream)

sever.setsockopt(sol_socket, so_reuseaddr,1)

sever.bind(

(ip, port)

) sever.listen(5)

while

true

: conn,addr = sever.accept(

) p = process(target=talk,args=

(conn,))

p.start(

) sever.close(

)if __name__ ==

'__main__'

: sever(

"127.0.0.1"

,8888

)

客戶端

from socket import

*client = socket(af_inet,sock_stream)

client.connect(

("127.0.0.1"

,8888))

while

true

: msg =

input

(">>:"

).strip()if

not msg:

continue

client.send(msg.encode(

"utf-8"))

data = client.recv(

1024

)print

(data.decode(

"utf-8"

))

3.改寫下列程式,分別別實現下述列印效果

保證最後輸出-------->4

from multiprocessing import process

import time

import random

deftask

(n):

time.sleep(random.randint(1,

3))print

('-------->%s'

%n)if __name__ ==

'__main__'

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

,)) p2=process(target=task,args=(2

,)) p3=process(target=task,args=(3

,)) p1.start(

) p2.start(

) p3.start(

) p1.join(

) p2.join(

) p3.join(

)print

('-------->4')-

----

--->1-

----

--->3-

----

--->2-

----

--->

4

4.思考下列**的執行結果有可能有哪些情況?為什麼?

from multiprocessing import process

import time

deffoo()

:print

(123

) time.sleep(1)

print

("end123"

)def

bar():

print

(456

) time.sleep(3)

print

("end456"

)if __name__ ==

'__main__'

: p1=process(target=foo)

p2=process(target=bar)

p1.daemon=

true

p1.start(

) p2.start(

)print

("main-------"

)print

("主"

)main---

----

主456

end456

Java陣列章節練習題基礎版

這組 可以鞏固我們的基礎,在這組 裡,一共完成了七個方法。首先,定義乙個類 public class arrayutils2.輸出陣列最小值 public static int arrayminelement int data 3.陣列所有元素之和 public static int arrayel...

第8章節 程序控制

1.每乙個程序都有唯一的乙個非負整數程序id 2.核心態 程序呼叫了系統api 注意不是標準庫函式 正在執行核心 的狀態 使用者態 正在執行的是使用者編寫的 狀態 3.核心自舉 自舉是指上電自檢,即核心檢查硬體平台都擁有什麼硬體,為硬體載入驅動,最終載入根文 件系統並執行第乙個程序。程序id 1的程...

Python 練習 程序

建立2個程序,每乙個程序都打出當前的時間和程序的標識,持續打十次.import multiprocessing as mul from datetime import datetime import time defworker id for i in range 10 now datetime.n...