critical-section

    1熱度

    2回答

    在我的常量」 - 我想這就是secondCommand firstCommand‘後,纔可以稱爲’。我試着用EnterCriticalSection的工作,但問題是,從哪裏開始我的鎖 - 如果我這樣做是在構造函數(在#),和「firstCommand」(##處)後解除鎖定,並嘗試獲取再次鎖定「secondCommand」(在###)之前,它可能不是因爲在###工作,即使在鎖被鎖定 - second

    0熱度

    2回答

    while(1)繼續發生事件循環,即使事件發生了。下面是我的代碼。我在問題所在的代碼中提到了註釋中的實際問題。預先感謝您的幫助:) DWORD WINAPI workerThreadProcedure(LPVOID lparam) { printf("===Worker Thread===\n"); // Initialize the critical sec

    0熱度

    1回答

    在下面的這個例子代碼中,哪裏是「關鍵部分」? 「sem_wait()」之後? #include <stdio.h> #include <unistd.h> #include <stdlib.h> #include <pthread.h> #include <semaphore.h> void * thread_snd(void *arg); void * thread_rcv(voi

    0熱度

    1回答

    我的服務器上有兩個線程,一個工作線程和一個接收線程。有包含所有活動的客戶端列表中該服務器的共享隊列,即隊列具有IP和每個活動客戶端 工作線程在臨界區的端口號,並不斷出現數據移出隊列,併發送消息到每個IP和端口號都彈出。 接收線程只有等待新的連接,並儘快除了活躍客戶新客戶到來時,接收線程馬上要工作線程離開臨界區,以便接收線程可以進入臨界區,並寫入隊列。 這是如何實現的?有沒有什麼辦法可以讓一個線程在

    1熱度

    1回答

    對於我的應用程序,我需要確保在關鍵會話中只有一種線程正在處理。給定類型的線程數量未指定,可能爲「大」。我帶着簡單的解決方案: MutableInt a,b,c; Semaphore mutex; void enterA() { while (true) { mutex.acquire(); if (b.intValue() == 0 && c.intValu

    0熱度

    2回答

    我最近開始使用C++而不是Delphi。有些東西看起來很不一樣。 例如我不知道如何初始化信號量和CriticalSections等變量。 現在我只知道2種可能的方式: 1.在構造函數中初始化臨界區段是愚蠢的,因爲每個實例都將使用自己的臨界區而不同步任何東西,對吧? 2.創建表單時使用全局變量並初始化它似乎也不是一個完美的解決方案。 任何人都可以告訴我如何做到這一點? 只是我需要的關鍵部分的一個簡短

    2熱度

    1回答

    我有兩個不同的線程(在主線程旁邊)。 第一個向主線程PostMessage發送數據。由於接收到消息,主線程修改了相應的全局變量(不同類型)。 另一個線程(第二個線程)定期讀取這些變量。 在這種情況下(在主線程和第二線程中)需要使用臨界區來保證安全嗎?

    0熱度

    1回答

    我有多個線程,ThreadA和ThreadsB-Z。 ThreadA始終處於關鍵部分,將數據從隊列中彈出並將其發送到套接字上。 當從ThreadB到ThreadZ的任何線程都想要進入臨界區時,它只希望ThreadA離開臨界區。然後進入關鍵部分,將一些數據推入隊列並留下關鍵部分。 我這裏有兩個問題: 將如何ThreadB-Z(凡要進入臨界區) 告訴ThreadA中,當它想 訪問臨界區離開臨界區。 我

    0熱度

    1回答

    我正在學習關鍵部分(爲了多線程的目的),並且我在網上找到了一個使用它的類。我不明白爲什麼我的代碼無法正常工作 - 我應該在控制檯顯示屏上獲得「成功」,但我不知道。 我鎖定不正確嗎?我確信我正在準確地進入和退出這些部分 - 但我不知道爲什麼第三個線程(mul)似乎不起作用。 這裏是主代碼(在VS 2012做這個): #include "stdafx.h" #include <windows.h>

    4熱度

    2回答

    這是我需要做的。 我希望dispatch_sync將使用GCD 我有一定的一塊被放置在AppDelegate中的applicationDidBecomeActive回調關鍵部分的代碼來做到這一點的最好辦法.. 我結束了裏面那個方法dispatch_sync調用,以便它被調用一次,無論applicationDidBecomeActive多少次叫 - (void)applicationDidBecom