91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

線程、線程池、并發、同步、異步、鎖

發布時間:2020-08-06 02:34:46 來源:網絡 閱讀:473 作者:沙漏半杯 欄目:編程語言

先看一個模擬多個線程同時寫1000條日志例子:


class Program {

? ? static void Main(string[] args) {


? ? ? ? Thread t1 = new Thread(Working);

? ? ? ? t1.Name = "Thread1";// 實例化三個寫日志的線程。

? ? ? ? Thread t2 = new Thread(Working);

? ? ? ? t2.Name = "Thread2";

? ? ? ? Thread t3 = new Thread(Working);

? ? ? ? t3.Name = "Thread3";


? ? ? ? // 依次啟動3個線程。

? ? ? ? t1.Start();

? ? ? ? t2.Start();

? ? ? ? t3.Start();


? ? ? ? Console.ReadKey();

? ? }


? ? // 每個線程都同時在工作

? ? static void Working() {

? ? ? ? // 模擬1000次寫日志操作

? ? ? ? for (int i = 0; i < 1000; i++) {

? ? ? ? ? ? Logger.Write(Thread.CurrentThread.Name + " writes a log: " + i + ", on " + DateTime.Now.ToString() + ".\n");

? ? ? ? }// 做一些其它的事件

? ? ? ? for (int i = 0; i < 1000; i++) { }

? ? }

}


并發:?

多個用戶爭奪同一個資源(這個資源可以是服務器上的日志,可以是執行某一此sql操作,可以使ftp服務器上的某個文件等,又或者是程序中的某一個全局變量,因此我們可以稱這種資源為:全局資源);?

解釋:?

并發是在多個用戶請求同一個資源的時候,或者是程序本身多線程請求同一個資源的時候造成的。?

比如:?

一個財務系統,兩個人同時對總錢數進行操作,一個加10塊一個減100塊,注意這兩個操作是同時進行的,那系統就不知道是加還是減了,這是并發問題。或者,多個線程同時請求同一個資源,必然導致此資源的數據不安全,A線程修改了B線程的處理的數據,而B線程又修改了A線程處理的數理(線程安全)。


異步:?

A線程要請求某個資源,但是此資源正在被B線程使用中,因為沒有同步機制存在,A線程?

仍然請求的到這個資源,A線程無需等待。?

同步:?

A線程要請求某個資源,但是此資源正在被B線程使用中,因為同步機制存在,A線程請求?

不到,怎么辦,A線程只能等待下去。


同步與異步:?

顯然,同步最安全,最保險的。而異步不安全,容易導致死鎖,這樣一個線程死掉就會導致整個?

進程崩潰,但沒有同步機制的存在,性能會有所提升。所以對于同步與異步必須有所取舍。


向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

灵宝市| 平凉市| 洪江市| 育儿| 高尔夫| 陆良县| 达州市| 南陵县| 准格尔旗| 永寿县| 广饶县| 蒙自县| 三门县| 宁陵县| 冀州市| 合肥市| 仪征市| 博白县| 吉隆县| 闽侯县| 温州市| 交口县| 西丰县| 石柱| 额尔古纳市| 双柏县| 萨迦县| 洪泽县| 准格尔旗| 龙游县| 叶城县| 林周县| 宝鸡市| 邻水| 泰安市| 普兰县| 张家川| 长海县| 张北县| 安丘市| 安新县|