stdthread

    0熱度

    1回答

    如何在C++ 11中乾淨地終止當前子std ::線程?終止決定是在主線程方法的函數調用深度爲4或5時做出的,因此我不想檢查每次返回時是否應該終止。我已經看過退出和終止,但它看起來像他們終止整個過程,而不僅僅是當前的線程。 例如: void A() { B(); ... } void B() { C(); ... } void C() { D(); ... } void D() { /* oo

    1熱度

    1回答

    我正在用C++編寫Monte Carlo程序,並且使用std :: thread劃分要在線程之間跟蹤的歷史數量。然而,這是我第一次嘗試多線程,我遇到了這樣一個問題,即這個簡化的代碼應該讓我能夠展示,希望我能從本網站的讀者那裏得到一些建議。在這個簡化的問題中,我調用了Summation函數,該函數用2個線程產生1X5維的隨機數字數組。當線程返回它們的值(由於它是一個全局變量而沒有真正返回)時,主程序

    1熱度

    1回答

    我想多個陣列傳遞到正在使用的std ::線程如下創建的線程: threadPool.push_back(std::thread(factor, Ap, Ai, Ax, b, Rs, Q, P, Pinv, n, 0, n, scale, nz)); 和功能因子定義如下: void factor(int Ap[], int Ai[], double Ax[], double b[], doubl

    0熱度

    1回答

    我在寫一個使用GLEWMX上下文的插件。該插件在線程標識(1)下加載GLEWMX上下文。然後當我運行一些東西時,它會在線程標識(2)下運行該任務。我可以訪問兩個線程ID。 我應該使用std:thread將活動線程切換到線程(1),以便我可以在該上下文中訪問和運行事物嗎?我該怎麼做

    1熱度

    1回答

    希望你們都有愉快的假期。 這個問題涉及到我剛纔的問題:std::condition_variable - Wait for several threads to notify observer 我想基於以下我自己的可變線程執行來實現線程池: class MutableThread { private: std::thread m_Thread; std::function<

    3熱度

    1回答

    我正在嘗試一些C++ 11線程支持,但是我面臨的瓶頸是瓶頸。我使用由rubenvb構建的gcc 4.8.0(直接從sourceforge下載)[x86_64-w64-mingw32-gcc-4.8.0-win64_rubenvb],並發現它似乎不支持C++ 11線程功能。以下代碼未能編譯並投訴'thread' is not a member of 'std'。隨着谷歌搜索,有一個4.7實驗(也由r

    3熱度

    2回答

    我有一個在兩個併發線程之間共享的資源。該資源包含兩個線程需要讀取和寫入的向量。因此,我通過互斥體訪問該向量。迄今爲止,資源共享運作良好,沒有任何問題。 但是,當我嘗試按如下方式爲sharedResource編寫一個拷貝構造函數時,問題就開始了。 class sharedResource{ public: sharedResource(){} sharedResource(co

    1熱度

    1回答

    我使用VS2012和我有以下例題: #include <chrono> #include <thread> int main() { // doesn't compile and I don't understand why: std::this_thread::sleep_for(std::chrono::duration<double>(0.1)); /

    2熱度

    1回答

    下面的程序給出一些奇怪的編譯/運行時的行爲,當使用Visual Studio 2013編譯: #include "stdafx.h" #include <thread> #include <chrono> #include <iostream> int main() { {//works std::thread([](){ std::cout <<

    1熱度

    1回答

    我有一個多線程的C++ MFC應用程序。我有一個工作線程來執行我的程序邏輯,主線程專門處理GUI事件。 GUI線程派生程序邏輯線程,並從中分離執行,這樣的 - void CMyDocument::InGUIThread() { std::thread tProgramLogic(programLogicThreadFunction); tProgramLogic.detach