?? test_win.c
字號(hào):
#include <stdio.h>#include <stdlib.h>#include <conio.h>#include "os.h"#include "datatype.h"#include "cmppapi.h"#include "cmppmutex.h"#include "event.h"RecMutex m_test_mutex;recEvent m_test_event;void ServerProc1(void *pPara){ int i; printf("start ServerProc1\n"); for(i = 0; i < 100; i++) { Sleep(rand()%100); nMutexLock(&m_test_mutex); printf("LOCK BY PROC1 TIME %d...\n", i); nMutexUnlock(&m_test_mutex); } printf("end ServerProc1\n");}void ServerProc2(void *pPara){ int i; printf("start ServerProc2\n"); for(i = 0; i < 100; i++) { Sleep(rand()%100); nMutexLock(&m_test_mutex); printf("LOCK BY PROC2 TIME %d...\n", i); nMutexUnlock(&m_test_mutex); } printf("end ServerProc2\n");}void ServerProc3(void *pPara){ int i; printf("start ServerProc3\n"); for(i = 0; i < 100; i++) { Sleep(rand()%2000); while(nTimedWaitEvent(&m_test_event, INFINITE) < 0) printf("PROC3 wait event....\n"); printf("EVENT BY PROC3 TIME %d...\n", i); } printf("end ServerProc3\n");}void ServerProc4(void *pPara){ int i; printf("start ServerProc4\n"); for(i = 0; i < 100; i++) { Sleep(rand()%2000); while(nTimedWaitEvent(&m_test_event, INFINITE) < 0) printf("PROC4 wait event....\n"); printf("EVENT BY PROC4 TIME %d...\n", i); } printf("end ServerProc4\n");}void ServerProc5(void *pPara){ int i; printf("start ServerProc5\n"); for(i = 0; i < 100; i++) { Sleep(rand()%2000); while(nTimedWaitEvent(&m_test_event, INFINITE) < 0) printf("PROC5 wait event....\n"); printf("EVENT BY PROC5 TIME %d...\n", i); } printf("end ServerProc5\n");}void ServerProc6(void *pPara){ int i; printf("start ServerProc6\n"); for(i = 0; i < 100; i++) { Sleep(rand()%2000); while(nTimedWaitEvent(&m_test_event, INFINITE) < 0) printf("PROC6 wait event....\n"); printf("EVENT BY PROC6 TIME %d...\n", i); } printf("end ServerProc6\n");}int main (int argc, char *argv[]){ int i; printf("start main.\n"); if(argc != 2) { printf("cmd [m,e]\n"); return -1; } switch(argv[1][0]) { case 'm': case 'M': { if(nMutexInit(&m_test_mutex) != MUTEX_OK) { printf("init mutex fail.\n"); return -1; } _beginthread(ServerProc1,// Thread procedure. 0, NULL); _beginthread(ServerProc2,// Thread procedure. 0, NULL); } Sleep(20000); nMutexDestroy(&m_test_mutex); break; case 'e': case 'E': { if(nInitEvent(&m_test_event) != EVENT_OK) { printf("init event fail.\n"); return -1; } _beginthread(ServerProc3,// Thread procedure. 0, NULL); _beginthread(ServerProc4,// Thread procedure. 0, NULL); _beginthread(ServerProc5,// Thread procedure. 0, NULL); _beginthread(ServerProc6,// Thread procedure. 0, NULL); for (i = 0; i < 10; i++) { Sleep(300); nSetEvent(&m_test_event); } } Sleep(200000); nDestroyEvent(&m_test_event); break; default: printf("cmd [m,e]\n"); return -1; } printf("end main.\n"); return 0;}
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -