|
演示一下用线程的写法
主线程创建一个子线程,子线程一直让共用的count加一
主线程等待若干时间后然后挂起子进程,再输出count
- #include <Windows.h>
- #include <stdio.h>
- int count;
- DWORD WINAPI ThreadProc(LPVOID para)
- {
- while(1)
- count += 1;
- }
- int main()
- {
- HANDLE thread_handle;
- thread_handle = CreateThread(NULL,
- 0, ThreadProc, NULL, 0, NULL);
- WaitForSingleObject(thread_handle, 5);
- SuspendThread(thread_handle);
- printf("%d\n", count);
- Sleep(4000);
- return 0;
- }
复制代码
这种做法不可靠,因为线程调度完全交给操作系统内核的,有可能主线程等了一段时间才切换到子线程。
把等待时间改成1可以发现有时候输出结果是0,说明完全没切换到子线程 |
|