来源:汪清新闻网 | 2023-04-26 13:39:19 |
多个线程操作相同的数据时,一般是需要按顺序访问的,否则会引导数据错乱,无法控制数据,变成随机变量。为解决这个问题,就需要引入互斥变量,让每个线程都按顺序地访问变量。这样就需要使用EnterCriticalSection和LeaveCriticalSection函数。
entercriticalsection的原型是什么?
比如说我们定义了一个共享资源dwTime[100],两个线程ThreadFuncA和ThreadFuncB都对它进行读写操作。当我们想要保证 dwTime[100]的操作完整性,即不希望写到一半的数据被另一个线程读取,那么用CRITICAL_SECTION来进行线程同步如下:
第一个线程函数:DWORD WINAPI ThreadFuncA(LPVOID lp)
{
EnterCriticalSection(&cs);
...
// 操作dwTime
...
LeaveCriticalSection(&cs);
return 0;}
2023-04-26 12:55:55
2023-04-26 11:51:10
2023-04-26 11:37:32
2023-04-26 11:45:50
2023-04-26 10:36:38
2023-04-26 09:52:07
2023-04-26 09:49:20
2023-04-26 09:49:17
2023-04-26 09:48:59
2023-04-26 09:46:05
2023-04-26 09:45:59
2023-04-26 09:45:48
2023-04-26 09:43:27
2023-04-26 09:43:10
2023-04-26 09:43:04
2023-04-26 09:42:45
2023-04-26 09:42:14
2023-04-26 09:41:19
2023-04-26 09:41:11
2023-04-26 09:40:53
2023-04-26 09:39:26