併發程式設計雜碎小知識

2022-06-15 11:18:17 字數 1316 閱讀 7459

1、作業系統編寫的語言:組合語言,c語言

2、 wins: cmd其實就是乙個軟體與作業系統打交道

linux:shell直譯器

3、現在摩爾定律越來越不適用了,所以會出現技術革新,比如出現go語言,但並未找到真正更好的辦法

4、雙擊(啟動程式)也叫互動式

5、程序的建立 :作業系統底層會呼叫不同的介面

6、 io阻塞是為了:提公升效率

cpu時間過長:降低一點效率,但為了讓使用者感覺到併發

7、超時(timeout)

為防止伺服器不能及時響應,大部分發至外部伺服器的請求都應該帶著 timeout 引數。在預設情況下,除非顯式指定了 timeout 值,requests 是不會自動進行超時處理的。如果沒有 timeout,你的**可能會掛起若干分鐘甚至更長時間。

request timeout

timeout=3 #意思就是超時3s後斷開鏈結

timeout=(3,7) #timeout傳入乙個元組(3,7)第一位是connect連線的超時時間,第二位是read讀取的超時時間

8、多程序一般都設定為守護程序

9、程式執行理想狀態:讓**永遠處於就緒態和執行態之間切換

10、程序與程序之間資料預設情況下是無法直接互動的,如果想互動可以借助第三方工具、模組

11、 python直譯器內部的包都是用物件導向封裝的

12、實現不同機器上通訊:

利用第三方專業的訊息佇列:

比如:rabbitmq(吞吐量沒kafka高,有訊息確認機制), kafka(吞吐量高,無訊息確認機制), redis

13、解耦合,訊息佇列是微服務的基礎

14、執行緒沒有id號(可造虛擬id方便執行緒用,但在任務管理器裡是查不到),但有名字 t.name()或t.getname()獲取名字

程序有id號,可在任務管理器里查到

15、若幾個執行緒都屬於同一程序,所以id相同

16、gil的用途:py的垃圾**機制是執行緒不安全的(py是解釋型語言),cpython的多執行緒不是真正的多執行緒,同一時刻,只有乙個執行緒在執行,不能利用多核優勢

17、編譯型語言(比如python) 是執行緒安全的

18、分布式鎖可能會遇到死鎖現象

19、執行程式最理想的狀態:

程序下開多執行緒 多執行緒下再利用協程,最大程度的提公升團建執行效率

20、多核多執行緒比單核多執行緒更差,io密集型用多執行緒,cpu(計算)密集型用多程序

21、自己研究: fastapi,django3.0,sanic,tornado:支援非同步,有協程

22、io多路復用是阻塞式io,有阻塞的過程就是阻塞式io

23、協程 : 儲存狀態 +切換

go 雜碎小知識

1.目前go的sdk最新版本1.15,1.11版本 加入了go module,1.5版本 實現了自舉 2.go module 使用go module之後我們可不用將 放置在src下了 go module 的目的是依賴管理,所以使用 go module 時你可以捨棄 go get 命令 但是不是禁止使...

linux 雜碎小知識

1.刪 rm rf 刪全部 rm rf 刪本目錄下的全部rm rf jpg或者 rm rf 160 刪除 2.各種虛擬機器 esxi kvm kvm 全稱是 kernel based virtual machine 是 linux 下 x86 硬體平台上的全功能虛擬化解決方案,包含乙個可載入的核心模...

雜碎小知識 模組相關

1 檔案級別的命名空間都是全域性的。2 import sys處理環境變數 3 start.py 執行檔案只有短短幾行,不要長篇寫 4 增量備份 第一次備份完整,之後每次都備份改過的,節省空間,還原時要按照備份的不同時間一點點還原回來 完全備份 全拷貝 5 xml跟json差不多,比較笨重麻煩 6 我...