mutex

    0熱度

    1回答

    我的實現存在缺陷,我無法弄清楚。我有一個工作線程不一致地調用回調函數來寫入名爲「m_bufferLatest」的緩衝區。緩衝區需要被複制過來,並且需要一些時間才能在主線程中完成複製。所以我需要保護「m_bufferLatest」。因此,在我調用ContinuousCapture()的主線程中,我設置了一個名爲「m_skipFrame」的標誌,以便回調函數不會寫入m_bufferLatest。 但是

    15熱度

    1回答

    我一直在閱讀關於多線程,C++,適當的同步和鎖定以防止競爭條件的不同事情。還有一個問題沒有回答我,但是: 有沒有,如果我創建一個線程對象需要一個互斥體,但事後在線程B專門使用它? 換句話說,我知道我不需要互斥體來防止競爭條件 - 我需要互斥體作爲內存屏障(或其他潛在問題)嗎? 一個非常簡單的例子,以可視化我的意思 struct Object { void do_stuff(); };

    0熱度

    1回答

    我無法傾倒pthread_mutex_t的結構成員的值在gdb爲了檢測死鎖testapp.cpp的 (gdb) where #0 boost::mutex::lock (this=0x7fffffffd980) at mutex.hpp:116 #1 0x000000000043454b in boost::unique_lock<boost::mutex>::lock (this=0x7ff

    0熱度

    3回答

    這是我在這個社區的第一篇文章,所以請耐心等待。 有沒有一種方法可以在宏本身中互斥保護宏。 例如, #define FUNCTION_ \ doSomething() 基本上,我希望通過自己做這樣的事情 #define FUNCTION_ \ mutex.lock \ doSomething() \ mutex.unlock 如需進一步信息,宏都在頭文件中聲明,(無名稱空間或類),它

    1熱度

    1回答

    這是我在WPF.NET中遇到的一個問題。爲了說明這個問題,讓我們來看看下面的類: public class TaskRunnerWithProgressFeedback(){ ManualResetEvent _event = new ManualResetEvent(false); public void RunTask(Action action) { _eve

    -3熱度

    1回答

    我想從程序中刪除一個死鎖。問題在於程序不斷給我中止。重點是將數據寫入文件。但是當發生死鎖時,線程應該等待,並在稍後繼續而不是中止。 #include <iostream> #include <unistd.h> #include <fstream> #include <vector> #include <thread> #include <mutex> #include <except

    0熱度

    1回答

    我已經使用YourKit分析器,我想分析爲什麼這個哈希表和它的互斥體保留高達196 KB; 圖片在這裏附上。 是的這是一個問題,因爲我有大約2000個對象保留196 kb的數據;這是一個潛在的問題。 這是一個線程安全環境;因此使用散列表代替其他任何東西。

    1熱度

    1回答

    我讀到APUE 3rd,11.6.1互斥,存在關於鎖定一個例子,在本章中解鎖互斥: struct foo { int f_count; pthread_mutex_t f_lock; int f_id; /* ... more stuff here ... */ }; struct foo * foo_alloc(int id) /* a

    -1熱度

    1回答

    我在編譯我的代碼時遇到問題,它使用互斥鎖(所以使用pthread鎖和條件)。我試過包括頭文件,用-pthread或-lpthread編譯,但我仍然收到錯誤。幫助將不勝感激。 這是誤差輸出: 的函數「的pthread_mutex_lock」 [-Wimplicit函數聲明] 的pthread_mutex_lock(&鎖)隱式聲明; //鎖定 ^ /tmp/cchVS47i.o:在功能getMessa

    0熱度

    1回答

    我在寫一個創建兩個線程的程序。每個線程負責讀取一個文本文件,每行一個字符。 h 0 h 0 ... 第二的格式如下:: 第一像被格式化 0 i 0 i 0 i 有時可以有後彼此多個字母,或彼此先後多個零。但是,一個確定的是,如果一個文件的一行上有一個字母,第二個文件的相應行將有一個0,反之亦然。 線程應該保持讀取文件輸入到全局字符數組中,直到它們達到零。此時,他們允許另一