mutex

    0熱度

    1回答

    我傳遞結構,其中包含一個char *在pthread_create我鎖定的主要和互斥鎖的線程,所以我可以保護這個字符串,因爲當第二個線程將創建的字符串會改變,第一線程將使用第二個字符串,而不是第一個字符串。下面是代碼: 的main.c while(th_num < th_size) { pthread_mutex_lock(&lock); received = 0;

    3熱度

    1回答

    我知道這意味着如果你聲明一個數組volatile,那麼對數組的引用不是數組中的項。 我學習互斥算法,所以我寫了一些測試代碼: public class MutualExclusion { static final int N = 10; static final int M = 100000; volatile static int count = 0;

    1熱度

    2回答

    #include <pthread.h> pthread_mutex_t* mut; int main() { mut = PTHREAD_MUTEX_INITIALIZER; } 上面的代碼吐出了error: expected expression before ‘{’ token。 #include <pthread.h> pthread_mutex_t* mu

    5熱度

    1回答

    考慮下面的代碼: pthread_mutexattr_t attr; pthread_mutexattr_init(&attr); pthread_mutexattr_setrobust(&attr, PTHREAD_MUTEX_ROBUST); pthread_mutex_t mut; pthread_mutex_init(&mut, &attr); pthread_mutexat

    -1熱度

    1回答

    我對互斥鎖的使用(只有舊的大學課程給出的弱理論知識)很陌生。我正在努力解決有關db訪問的問題。我現在來解釋一下我的情況,以便讓你更好地理解這種情況: 存在不同的實體(每個實體在不同的線程上產生)稱爲A,B和C,即訪問數據庫(sqlite3數據庫)無論是通過稱爲DB_Manager的單例類(具有管理所有功能的集中式類)進行讀取/寫入。 因爲我正在使用自定義hw上運行的軟件,所以我無法使用C++ 11

    0熱度

    3回答

    我目前正在研究信號量和互斥實際如何工作,並遇到以下問題。 我們假設我們在CPU上有兩個內核。我們有兩個進程,每個核心都運行一個進程。現在我們正在呼籲兩個內核的wait()調用,因爲我們希望進入一個關鍵部分:如果兩個內核並行執行代碼 wait(){ while(s.value <= 0) // busy waiting s.value--; } ,初始信號值是1,

    3熱度

    1回答

    我期待優先線程,因此如果兩個線程正在等待一個互斥體,具有最高優先級的線程將永遠是優先級較低的人之前採取互斥。 一位同事建議,通過改變我的線程的線程的優先級我應該做到這一點。我嘗試使用SetThreadPriority()函數將其中一個等待線程設置爲0(正常),另一個線程設置爲2(最高),但不會像我期望的那樣影響互斥體行爲。當前鎖總是進入請求所有權的第一個線程。 那麼這種行爲是否正常?與我的同事的想

    0熱度

    1回答

    是否可以使用其全路徑限定符打開或查詢已命名的互斥體(使用OpenMutex)?例如: HANDLE hHandleMutex = OpenMutex(READ_CONTROL, FALSE, "\\Sessions\\1\\BaseNamedObjects\\SmartScreen_AppRepSettings_Mutex"); 然而,函數返回NULL和失敗,錯誤161(ERRO

    2熱度

    3回答

    這是我的問題。 我有這樣的結構。 struct threadInfo { std::condition_variable cv; std::mutex m; int priorityLevel; }; 當建立我的代碼,我得到這個錯誤 錯誤C2280 threadInfo::threadInfo(const threadInfo &):嘗試 引用刪除的功能Pri

    1熱度

    2回答

    我正試圖解決C++ 11中的生產者消費者問題。 我有一個保存資源的對象,多個線程可以添加或使用這些資源。我的問題是,當我嘗試在該對象上實現 a「當可用時使用」方法。 請假設插入/刪除操作的複雜性很小。 對代碼邏輯的一點說明。 struct ResourceManager{ std::mutex mux; std::unique_lock lock{mux}; std: