| 組件 | 說明 |
|---|---|
Thread | 基礎線程類,配合 MessagePump/MessageQueue 跑消息循環。 |
SequencedWorkerPool | 線程池,按 Token 分組串行執行,組間並行。支持退出時任務處理策略(繼續/忽略/阻塞)。 |
volatile:防編譯器優化,保證讀取最新值,需配合內存屏障正確使用。Atomic32、AtomicSequenceNumber、AtomicRefCount:Chromium 封裝的原子操作類型。Lock / AutoLock / AutoUnlock:RAII 風格,AutoLock 構造加鎖、析構解鎖;AutoUnlock 反向操作(構造解鎖、析構加鎖),用於臨時釋放鎖調用回調。WaitableEvent:異步等待信號,基於 Lock + ConditionVariable 實現。ConditionVariable:Wait/TimedWait/Broadcast/Signal。CancellationFlag:原子布爾標誌,用於取消協作任務。atomicXXX、Mutex/MutexLocker、RecursiveMutex、ThreadCondition:功能對應 base 庫,適配跨平台。| 類別 | 用途 |
|---|---|
ThreadLocalPointer/Boolean | TLS 線程局部存儲,LazyInstance 配合避免靜態初始化順序問題。 |
ThreadSafeDataTransport | 生產者-消費者單向傳輸,減少拷貝與鎖競爭。 |
LazyInstance | 線程安全單例,對象置於數據段避免碎片。 |
NonThreadSafe | Debug 模式檢測跨線程訪問,CalledOnValidThread()。 |
ThreadCollisionWarner | 編碼期輔助宏:DFAKE_SCOPED_LOCK 等,標註線程綁定要求。 |
ThreadChecker | Debug 成員,綁定創建線程,檢測跨線程調用。 |
ThreadRestrictions | 線程行為限制:禁止阻塞 IO、控制單例訪問等。 |
Watchdog | 監控線程響應超時,Arm()/Disarm()。 |
PostTask,避免顯式鎖。SequencedWorkerPool 保證同 Token 任務有序。ThreadChecker、NonThreadSafe 早期暴露線程錯誤。base/synchronization/、base/threading/ 目錄源碼。