日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

day30 并发编程

發布時間:2024/7/5 编程问答 55 豆豆
生活随笔 收集整理的這篇文章主要介紹了 day30 并发编程 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

大文件上傳思維邏輯

服務端

# 1.socket創建TCP服務 # 2.連接循環 # 3.通信循環 接受固定長度的字典的報頭解析獲取字典數據的真實長度接受字典數據 解碼 反序列化成字典從字典中獲取文件大小 以及文件名等其他信息 # 4.循環接受文件數據文件操作(wb) 接受一行往文件中寫入一行

客戶端

# 1.socket客戶端代碼 # 2.利用os.listdir獲取文件夾中所有的文件名 # 3.循環打印 供用戶選擇想要上傳的文件 用戶選擇是否符合要求 # 4.根據用戶尋找及os.path.join方法拼接用戶想要上傳的文件絕對路徑 # 5.根據文件路徑獲取文件大小os.path.getsize() # 6.定義一個發送給服務端的字典 {"file_name":用戶選擇的文件名,"file_size":文件大小,...額外鍵值對消息} # 7.制作字典的報頭 序列化 編碼 # 8.發送字典的報頭 # 9.發送字典數據 # 10.發文件 文件操作 一行行讀取并發送

?

UDP的特點

#1 數據報協議(自己自帶報頭) #2 基于UDP協議傳輸數據 數據是不安全的 #3 你就把UDP看成發短信 你只管發 對方收不收 看不看跟你一毛錢關系 簡易版本的qq基于UDP開發

?

UDP跟TCP的區別

# 1.多個客戶端可以實現并發的效果 # 2.服務端不存在 客戶端也不會報錯(sendto) # 3.不會粘包 # 4.允許發空

?

異常處理

當你不確定某一些代碼在什么樣的情況下會出錯 你可以考慮使用異常處理 (能盡量少用就盡量少用) 異常處理過多 會造成代碼結構更加

?

異常的類型

# 1.語法錯誤 # 2.邏輯錯誤try: 可能會出異常的代碼塊 except 異常的類型 as e: # 將異常的報錯消息 賦值給e print(e) else: try代碼塊沒有任何異常發生才會觸發else的運行 finally: 無論是否發生異常 都會執行finally內部代碼異常類型:Exception BaseException 萬能異常自定義異常 class MyError(BaseException): def __init__(self,msg): super().__init__() self.msg = msg def __str__(self) return '%s'%self.msg主動拋出異常 raise TypeError('')斷言 assert

?


socketserver
socketserver能夠支持服務端的并發效果

并發編程

計算機發展史
進程理論
創建進程的兩種方式(******)
進程方法join
進程對象及其他方法
進程間數據互相隔離
守護進程
互斥鎖(*****)


多道技術

# 1.空間上的復用 多個程序共用一套計算機硬件# 2.時間上的復用 切換+保存狀態2.1 當一個程序遇到IO操作 操作系統會剝奪該程序的cpu執行權限(提高了cpu的利用率 并且也不影響程序的執行效率)2.2 當一個程序長時間占用cpu 操作系統也會剝奪該程序的cpu執行權限(降低了程序的執行效率)

?

并發與并行

# 并發:看起來像同時運行的就可以 # 并行:真正意義上的同時執行 單核的計算機能不能實現并行,但是可以實現并發

?

?程序與進程

# 程序:一坨代碼 # 進程:正在運行的程序

?

同步與異步

同步異步:表示的是任務的提交方式 # 同步:任務提交之后 原地等待的任務的執行并拿到返回結果才走 期間不做任何事(程序層面的表現就是卡住了) # 異步:任務提交之后 不再原地等待 而是繼續執行下一行代碼(結果是要的 但是是用過其他方式獲取)

阻塞非阻塞

阻塞非阻塞:表示的程序的運行狀態 # 阻塞:阻塞態 # 非阻塞:就緒態 運行態

強調:同步異步 阻塞非阻塞是兩對概念 不能混為一談

僵尸進程與孤兒進程

# 僵尸進程 父進程回收子進程資源的兩種方式 1.join方法 2.父進程正常死亡 所有的進程都會步入僵尸進程# 孤兒進程 子進程沒死 父進程意外死亡 針對linux會有兒童福利院(init) 如果父進程意外死亡他所創建的子進程都會被福利院收養

守護進程


互斥鎖

當多個進程操作同一份數據的時候 會造成數據的錯亂 這個時候必須加鎖處理 將并發變成串行 雖然降低了效率但是提高了數據的安全 注意: 1.鎖不要輕易使用 容易造成死鎖現象 2.只在處理數據的部分加鎖 不要在全局加鎖鎖必須在主進程中產生 交給子進程去使用

?




FTP作業



轉載于:https://www.cnblogs.com/Ryan-Yuan/p/11327920.html

總結

以上是生活随笔為你收集整理的day30 并发编程的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。