執行緒併發,用標誌位同步時要小心
static int busecount = 0;
static void socket_startup()
}int socket_create(int domain, int type)
void proc_0(void * params)
_beginthread(proc_0, 0, 0);
_beginthread(proc_1, 0, 0);
_beginthread(proc_2, 0, 0);
三個執行緒併發,呼叫socket之前wsastartup可能未執行!
對變數的訪問加鎖可解決這個問題
mutex.lock();
if (busecount++ == 0)
mutex.unlock();
多執行緒設定flag標誌位實現同步
我盡量注釋了 可以很容易理解了。package thread 訊號燈 借助標誌位 public class flagthread class consume extends thread override public void run class producer extends thread o...
用標誌位表示狀態
在很多框架中,我們都能看到類似 int 0x0010 這種 我們只知道他表示狀態,很牛x,但是具體為啥要這樣,或者它是如何表示多個不同狀態的卻全然不知.回顧位運算 位運算符號列表 符號英文名 中文名 or或 and與 not非 xor 異或 右移 左移 無符號右移 最高位始終補0 每種運算子的運算方...
多執行緒 併發 同步
對比同步塊和同步方法,理解一下同步塊可以力度更小的鎖定資源。在力度更小的鎖定資源時我們盡可能的提公升它的效能。package com.sxt.syn 執行緒安全 在併發時保證資料的正確性 效率盡可能高 synchronized 1 同步方法 2 同步塊 public class synblockte...