C++(C11)

C++11 標準提供了一個新的線程庫,內容包括了管理線程、保護共享數據、線程間的同步操做、低級原子操做等各類類。標準極大地提升了程序的可移植性,之前的多線程依賴於具體的平臺,而如今有了統一的接口進行實現。promise

  • < thread > :包含std::thread類以及std::this_thread命名空間。管理線程的函數和類在 中聲明.
  • < atomic > :包含std::atomic和std::atomic_flag類,以及一套C風格的原子類型和與C兼容的原子操做的函數。
  • < mutex > :包含了與互斥量相關的類以及其餘類型和函數
  • < future > :包含兩個Provider類(std::promise和std::package_task)和兩個Future類(std::future和std::shared_future)以及相關的類型和函數。
  • < condition_variable > :包含與條件變量相關的類,包括std::condition_variable和std::condition_variable_any。

Thread多線程

default (1)
thread() noexcept;
initialization (2)
template <class Fn, class... Args>
explicit thread (Fn&& fn, Args&&... args);
copy [deleted] (3)
thread (const thread&) = delete;
move (4)
thread (thread&& x) noexcept;
  • (1). 默認構造函數,建立一個空的 thread 執行對象。
  • (2). 初始化構造函數,建立一個 thread對象,該 thread對象可被 joinable,新產生的線程會調用 fn 函數,該函數的參數由 args 給出。
  • (3). 拷貝構造函數(被禁用),意味着 thread 不可被拷貝構造。
  • (4). move 構造函數,move 構造函數,調用成功以後 x 不表明任何 thread 執行對象。
  • 注意:可被 joinable 的 thread 對象必須在他們銷燬以前被主線程 join 或者將其設置爲 detached.
相關文章
相關標籤/搜索