摘要: 设置线程信息结构体 1 struct threadInfo 2 { 3 int *pstart; 4 int length; 5 int key; 6 int id; 7 }; 设置数组 1 int a[100]; 2 time_t ts; 3 srand((unsigned int)time(&t 阅读全文
posted @ 2018-02-03 20:50 喵小喵~ 阅读(193) 评论(0) 推荐(0)
摘要: 以id创建时钟定时器 1 HANDLE time1 = CreateWaitableTimerA(NULL, TRUE, "mytimer");//创建时钟 创建时间 1 LARGE_INTEGER mytime; 2 mytime.QuadPart = -10000000; //等待一秒 设置定时 阅读全文
posted @ 2018-02-03 16:33 喵小喵~ 阅读(172) 评论(0) 推荐(0)
摘要: 根据id创建Semaphore,并初始化有一个信号量可用 name类型是char *...; 1 HANDLE hsem = CreateSemaphoreA(NULL, 1, 1, name); 关闭句柄 1 CloseHandle(hsem); 根据id打开semaphore 1 HANDLE 阅读全文
posted @ 2018-02-03 15:49 喵小喵~ 阅读(618) 评论(0) 推荐(0)
摘要: 创建互斥量mutex 1 HANDLE mutex = CreateMutexA(NULL, TRUE, name); 根据id打开mutex 1 HANDLE mutex = OpenMutexA(MUTEX_ALL_ACCESS,TRUE,name); 监听 1 DWORD res = Wait 阅读全文
posted @ 2018-02-03 15:26 喵小喵~ 阅读(635) 评论(0) 推荐(1)
摘要: 以id创建事件 1 char name[100] = "myevent"; 2 HANDLE event = CreateEventA(NULL, FALSE, FALSE, name); 设置事件 1 SetEvent(event); 关闭事件 1 CloseHandle(event); 另一个进 阅读全文
posted @ 2018-02-03 13:17 喵小喵~ 阅读(879) 评论(0) 推荐(0)
摘要: 创建互斥锁 1 SRWLOCK g_lock; 注意一个线程仅能锁定资源一次,不能多次锁定资源 读取期间锁定数据,数据无法被外部线程修改 1 AcquireSRWLockShared(&g_lock); 释放互斥锁 1 AcquireSRWLockShared(&g_lock); 注意一个线程仅能锁 阅读全文
posted @ 2018-02-03 13:09 喵小喵~ 阅读(187) 评论(0) 推荐(0)
摘要: 创建信号量 1 //创建信号对象并开辟一个信号,最大计数是5,并初始化有五个可以用 2 HANDLE hSEM = CreateSemaphoreW(NULL, 5, MAX, id); 关闭信号量 1 CloseHandle(hSEM); 根据Id打开一个信号量 1 //根据一个id打开一个信号 阅读全文
posted @ 2018-02-03 13:03 喵小喵~ 阅读(285) 评论(0) 推荐(0)
摘要: 创建定时器 1 HANDLE timer = CreateWaitableTimer(NULL, TRUE, NULL); 设置定时器时间 1 //设置时间 2 LARGE_INTEGER time; 3 time.QuadPart = -20000000;//以微秒为单位 等待 1 if (Wai 阅读全文
posted @ 2018-02-03 10:30 喵小喵~ 阅读(123) 评论(0) 推荐(0)
摘要: 变量自增 1 InterlockedIncrement(&num); 变量加一个指定数 1 InterlockedAdd(&num, 100); 完整代码: 阅读全文
posted @ 2018-02-03 10:22 喵小喵~ 阅读(140) 评论(0) 推荐(0)
摘要: 声明互斥量: 1 HANDLE mutex = NULL;//指针 创建互斥量 1 CreateMutex(NULL, FALSE, NULL);//创建互斥量 互斥量变为1 关闭互斥量 1 CloseHandle(mutex); 使用互斥量 1 WaitForSingleObject(mutex, 阅读全文
posted @ 2018-02-03 10:17 喵小喵~ 阅读(115) 评论(0) 推荐(0)