多執行緒(一) 了解多執行緒,以及涉及到的一些基本概念

2021-08-14 07:36:23 字數 989 閱讀 2742

同步和非同步主要用於指對於一次方法的呼叫過程。同步方法呼叫開始後,方法者必須等到這一次呼叫返回後,才能繼續後續的操作。非同步方法呼叫開始後,立即返回,方法者可繼續開始後續的行為。
併發和並行主要用於指多個任務的執行。併發是指多個任務交替執行,實際上可能仍然是序列。而並行則是真正意義上的指多個任務同時執行。
臨界區又通常稱為共享資料或者公共資源,它可以被多個執行緒所使用,但,每次只能有乙個執行緒使用它,一旦被占用,其它執行緒要想使用這個資源,必須等待。
阻塞和非阻塞通常用來形容執行緒之間的相互影響。當乙個執行緒占用了臨界區之後,其它執行緒想要訪問此共享資料,必須等待,此時等待會導致執行緒掛起,這就是阻塞。非阻塞則是執行緒之間對臨界區的訪問不會相互影響。
三者都屬於執行緒活躍性的問題。死鎖是指執行緒之間占用了彼此執行時所需要的資源,而且都不願意讓步,導致這個狀態一直維持下去,例如著名的哲學家進餐問題。

飢餓是指執行緒因為種種原因無法獲得其所需要的資源,導致一直無法執行。例如,它的優先順序太低。

活鎖是指兩個執行緒執行時,都主動的將資源釋放給對方使用,導致資源不斷的在兩個執行緒之間跳動,而沒有乙個執行緒能拿到資源並且執行。

什麼是多執行緒?為什麼需要多執行緒?

多執行緒是指乙個應用程式同時執行多個任務,乙個任務稱為乙個執行緒,而乙個應用程式有乙個以上的執行緒我們稱之為多執行緒。

使用多執行緒的好處一般而言是為了提高系統效率,提高cpu的利用率。

原子性(atomicity)是指多個執行緒一起執行時,乙個操作一旦開始,就不會被其它的執行緒所干擾,即這個操作是不可中斷的。

可見性(visibility)是指乙個執行緒對共享變數進行修改之後,其它執行緒是否能夠立即知道這個修改。

有序性是指多個執行緒執行時候是否依次從上向下的執行。由於程式執行時可能會進行指令重排,所以重排後的指令順序可能發生了改變。

了解MicroPython多執行緒

該模組提供了用於處理多個執行緒 也稱為輕量級程序或任務 的低階原語 多個控制線程共享其全域性資料空間。為 了同步,提供了簡單的鎖 也稱為互斥鎖或二進位制訊號量 發生執行緒特定錯誤時,會runtimeerror引發異常。快速使用示例 import thread import time def th f...

多執行緒簡單了解

1 執行緒的實現方法 實現runable介面 繼承theradl類 實現callable介面 這玩意有返回值 futuretask 物件的get 方法獲取返回值 2 synchronized的用法 修飾乙個 塊,被修飾的 塊稱為同步 塊,其鎖可以進行自定義物件或類.修飾乙個方法,被修飾的方法稱為同步...

多執行緒(一) tomcat 多執行緒

web server允許的最大執行緒連線數還受制於作業系統的核心引數設定,通常windows是2000個左右,linux是1000個左右。1.編輯tomcat安裝目錄下的conf目錄下的server.xml檔案 maxthreads 150 表示最多同時處理150個連線,tomcat使用執行緒來處理...