1. 程式人生 > >雙執行緒--改變事件訊號有無,協調工作

雙執行緒--改變事件訊號有無,協調工作

#include "stdafx.h"
#include "windows.h"

#include "stdio.h"

HANDLE g_hEvent = 0;//接收事件控制代碼

//子執行緒1

DWORD CALLBACK PrintProc(LPVOID pParam)
{
while(1)
{
WaitForSingleObject(g_hEvent,INFINITE);
ResetEvent(g_hEvent);
printf("*******************\n");
}
return 0;

}

//子執行緒2

DWORD CALLBACK CtrlProc(LPVOID pParam)
{
while(1)
{
Sleep(1000);
SetEvent(g_hEvent);
}
return 0;
}
int main(int argc, char* argv[])
{
g_hEvent = CreateEvent(NULL,TRUE,FALSE,NULL);//建立事件
DWORD nID = 0;
HANDLE hThread[2] = {0};
hThread[0] = CreateThread(NULL,0,PrintProc,NULL,0,&nID);
hThread[1] = CreateThread(NULL,0,CtrlProc,NULL,0,&nID);
WaitForMultipleObjects(2,hThread,TRUE,INFINITE);
CloseHandle(hThread[0]);
CloseHandle(hThread[1]);
CloseHandle(g_hEvent);
return 0;
}

相關推薦

執行--改變事件訊號協調工作

#include "stdafx.h" #include "windows.h"#include "stdio.h" HANDLE g_hEvent = 0;//接收事件控制代碼 //子執行緒1 DWORD CALLBACK PrintProc(LPVOID pParam

C++多執行 互斥鎖 訊號事件 臨界區

一、互斥鎖 1、先熟悉熟悉API 1,建立互斥鎖,並反正一個控制代碼 HANDLE CreateMutex( LPSECURITY_ATTRIBUTESlpMutexAttributes, // 指

詳解 Qt 執行間共享資料(使用signal/slot傳遞資料執行間傳遞訊號會立刻返回但也可通過connect改變

相關文章使用共享記憶體。即使用一個兩個執行緒都能夠共享的變數(如全域性變數),這樣兩個執行緒都能夠訪問和修改該變數,從而達到共享資料的目的。Qt 執行緒間共享資料是本文介紹的內容,多的不說,先來啃內容。Qt執行緒間共享資料主要有兩種方式:使用共享記憶體。即使用一個兩個執行緒都

Android核心技術-day05-05-安卓下的多執行下載(帶ProgressBar)bug版

package com.gaozewen.multidownloader; import android.os.Bundle; import android.support.v7.app.AppCompatActivity; import android.view.View; impor

執行讀寫佇列資料

MFC對話方塊中一個按鈕的響應函式實現兩個功能: 顯示資料同時處理資料,因此開兩個執行緒,一個執行緒顯示資料(開了一個定時器,響應WM_TIMER訊息按照一定時間間隔向TeeChart圖表新增資料並顯示)同時在佇列隊尾新增資料,另一個執行緒從該佇列隊頭去資料來處理。 下面就來解決這個案例。先來分

【Windows原理】執行同步-事件物件2

#include "stdafx.h" #include <windows.h> HANDLE g_hEventA = nullptr; // 三個只讀執行緒 DWORD WINAPI ThreadProcA(LPVOID lpParam) { WaitForSin

【Windows原理】執行同步-事件物件

#include "stdafx.h" #include <windows.h> HANDLE g_hEventA = nullptr; HANDLE g_hEventB = nullptr; DWORD WINAPI ThreadProcA(LPVOID lpParam) {

python之執行鎖與訊號

執行緒鎖(互斥鎖Mutex) 一個程序下可以啟動多個執行緒,多個執行緒共享父程序的記憶體空間,也就意味著每個執行緒可以訪問同一份資料,此時,如果2個執行緒同時要修改同一份資料,會出現什麼狀況?就會可能存在同時取出了一個數據進行操作,然後存回去,這樣就會丟失一次操作。所以用鎖,在修改之前鎖上資料,

19.執行同步:訊號量—>[單生產者/單消費者]單鏈表的插入和刪除

1.訊號量 1.訊號量本質 訊號量是鎖,是一種升級的mutex 訊號量在初始化時,可以指定共享資源的數量 2.相關函式 #include<semaphore.h> //標頭檔案 sem_t sem; //訊號量型別 int sem_destroy(se

執行中的訊號機制--sigwait 函式

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!        

執行 之Semaphore 訊號量控制

Semaphore(訊號量) 用來控制同時訪問特定資源的執行緒數量。可以起到限流的作用。它與之前寫到的Guava API 中的令牌桶 RateLimiter的區別在於,令牌桶是控制了最終能進入訪問資源的恆定流量。會拋棄掉一些過剩流量的進入。而Semaphore 保證的是進入流量的恆定速率,這些流量最

執行事件迴圈

單執行緒指的是主執行緒是“單執行緒”的,所有阻塞的部分交給一個執行緒池處理,然後這個主執行緒通過一個佇列跟執行緒池協作,於是對我們寫到的js程式碼部分,不再關心執行緒問題,程式碼也主要由一堆callback回撥構成,然後主執行緒在不停的迴圈過程中,適時呼叫這些程式碼。 什麼是 Event Loo

Java之多執行安全(屌絲版兩大解決思路要麼不去競爭(開闢執行副本)、要麼順序的競爭資源(用鎖規定執行秩序))

0、多執行緒安全,如果多個執行緒操作一個變數,每次都能達到預期的結果,那麼說明當前這個類起碼是執行緒安全的,我這白話的,可能有點噁心。   1、看看牛人是怎麼說的,為什麼多執行緒併發是不安全的? 在作業系統中,執行緒是不再擁有資源的,程序是擁有資源的。而執行緒是由程序建立的

Java 多執行高併發 2 — CAS

在 Java 併發程式設計裡面,最可愛的就是無鎖了,非常巧妙,精彩絕倫 額。O__O "… 那麼什麼是無鎖? 顧名思義,在併發情況下采用無鎖的方式實現物件操作的原子性,保證資料一致性、安全性、正確性

C++多執行--執行同步事件

1、事件 事件是核心物件,多用於執行緒間通訊,可以跨程序同步 2、事件使用   (1)建立事件            HANDLE CreateEvent(            LPSECURITY_ATTRIBUTE SlpEventAttributes,//安

Python並行程式設計(五):執行同步之訊號

1、基本概念       訊號量是由作業系統管理的一種抽象資料型別,用於在多執行緒中同步對共享資源的使用。本質上說,訊號量是一個內部資料,用於標明當前的共享資源可以有多少併發讀取。       同樣在threading中,訊號量有acquire和release兩個函式。       - 每當執行緒想要讀取關聯

Node-單執行事件驅動、非阻塞I/O

Nodejs既然這麼流行就肯定有它的博大精深之處,自然不是我這還沒入門的小白可以掌握的,我就簡單說一下目前自己的理解程度。 一、單執行緒、非阻塞I/O、事件驅動 這是nodejs的三個特點。 單執行緒 Nodejs是單執行緒,和多執行緒相比: 優點:可以避免系統分配多執行緒以及執行

【Qt:語法】Qt 的執行事件迴圈

        週末天冷,索性把電腦抱到床上上網,這幾天看了 dbzhang800 部落格關於 Qt 事件迴圈的幾篇 Blog,發現自己對 Qt 的事件迴圈有不少誤解。從來只看到現象,這次借 dbzhang800 的部落格,就程式碼論事,因此瞭解到一些 Qt 深層的實現,

Java併發程式設計基礎//程序:每個程序都獨立的程式碼和資料空間(程序上下文)程序間的切換開銷比較大一個程序包含1-n個執行緒 //執行緒:同一類執行緒共享程式碼和資料空間每個執行緒擁有獨立的執行棧和程式計

1.實現多執行緒的兩種方式: (1)繼承Thread類; (2)實現Runnable介面 //程序:每個程序都有獨立的程式碼和資料空間(程序上下文),程序間的切換開銷比較大,一個程序包含1-n個執行緒 //執行緒:同一類執行緒共享程式碼和資料空間,每個執行緒擁有獨立的執行

redis單執行處理以及單執行的優缺點

Redis快的主要原因是: 完全基於記憶體 資料結構簡單,對資料操作也簡單 使用多路 I/O 複用模型 單程序單執行緒好處 程式碼更清晰,處理邏輯更簡單 不用去考慮各種鎖的問題,不存在加鎖釋放鎖操作,沒有因為可能出現死鎖而導致的效能消耗 不存在