3 9 學網路程式設計 程序

2021-08-16 14:35:19 字數 2721 閱讀 3490

1.程序

#多執行緒實現不了真正的多執行緒

#多程序 第一種方法

from multiprocessing import process

deff

(name):

time.sleep(1)

print('yanga11ang',name)

if __name__ == '__main__'

ps=for i in range(3):

p=process(target=f,args=('iadf',))

p.start()

for p in ps:

p.join()

#多程序 第二種方法

from multiprocessing import process

class

myprocess

(process):

defrun

(self):

time.sleep(1)

print('yanga11ang',self.name) #預設是他的乙個程序編號

if __name__ == '__main__'

ps=for i in range(3):

p=myprocess()

p.start()

for p in ps:

p.join()

#程序關係

from multiprocessing import process

import os,time

definfo

(title):

print(title)

print('module name',__name__)

print('parent process:',os.getppid()) #列印父程序編號

print('process id:',os.getpid()) #程序編號

if __name__ == '__main__'

info('\033[32;1mmain process line\033[0m')

time.sleep(3)

p=process(target=info,args=('bob',))

p.start()

p.join()

#一些方法

#name 程序名字

#is_alive() 返回程序是否在執行

#join(timeout) :阻塞當前上下文,知道呼叫此方法的程序終止或到達指定的timeout(可選引數)

#start() 程序準備就緒,等待cpu呼叫

#run() start呼叫run方法 如果例項程序沒有傳入定製的target

#terminate() 不管任務是否完成立即停止工作程序

2.程序的通訊

#使用程序佇列queue

from multiprocessing import process,queue

deff

(q):

q.put([1,2,'yanga1ang'])

print('subprocess id:',id(q)) #多個queue位址不同

if __name__=='__main__':

q=queue()

print(id(q))

ps=for i in range(3):

p=process(target=f,args=(q,))

p.start()

print(q.get())

print(q.get())

print(q.get())

#queue 之間有莫名的一種聯絡,queue在某個程序裡面改變,其他程序裡面也會改變

#queue 是multiprocess裡面自己寫的佇列而不是普通的

#使用程序管道 pipe

from multiprocessing import process,pipe

deff

(conn):

conn.send([43,none,'yang11ang'])

conn.close()

if __name__=='__main__':

q=queue()

parent_conn,child_conn=pipe()

p=process(target=f,args=(child_conn,))

p.start()

print(parent_conn.recv())

p.join()

3 .資料共享 程序的manager

#可以共用市局

from multiprocessing import process manager

deff

(d,l,n):

d[n]='1'

d['2']=2

print(1)

if __name__=='__main__':

with manager() as manager: # manage=manager()

d=manager.dict() #建立的可以共享的字典

l=manager.list(rang[5])

ps=for i in range(10):

p=process(target=f,args=(d,l,i))

p.start()

for i in range(10):

p.join()

39 網路程式設計

http協議,hyper text transfer protocol 超文字傳輸協議 是用於從全球資訊網伺服器傳送超文字到本地瀏覽器的傳輸議,http是乙個應用層協議,由請求和響應構成,是乙個標準的客戶端伺服器模型。c s模式 client和server常常分別處在相距很遠的兩台計算機上,clie...

網路程式設計之 程序

首先博主在這裡先告訴大家博主學習的書籍是由 韓 韓聖雨 著 金國哲 譯 的 tcp ip網路程式設計,把網路變成寫的通俗易懂。那麼我們就開始吧!我們就能利用時鐘中斷讓各個程式來占用cpu的一部分從而完成併發 由於人的視覺間隔較大,所以在我們看來這就是一起執行的,但是在計算機內部不是這樣的,計算及內部...

每日程式設計(39)

題目描述 給定乙個矩陣 a,返回 a 的轉置矩陣。矩陣的轉置是指將矩陣的主對角線翻轉,交換矩陣的行索引與列索引。示例 1 輸入 1,2,3 4,5,6 7,8,9 輸出 1,4,7 2,5,8 3,6,9 示例 2 輸入 1,2,3 4,5,6 輸出 1,4 2,5 3,6 分析 這個題很明顯直接反...