我需要什么以及如何在Windows Vista上使用C语言中的线程?
你能给我一个简单的代码示例吗?
答案 0 :(得分:30)
以下是关于如何在Windows上使用CreateThread()的MSDN sample。
基本思想是调用CreateThread()并向其传递一个指向线程函数的指针,该函数在创建后将在目标线程上运行。
最简单的代码是:
#include <windows.h>
DWORD WINAPI ThreadFunc(void* data) {
// Do stuff. This will be the first function called on the new thread.
// When this function returns, the thread goes away. See MSDN for more details.
return 0;
}
int main() {
HANDLE thread = CreateThread(NULL, 0, ThreadFunc, NULL, 0, NULL);
if (thread) {
// Optionally do stuff, such as wait on the thread.
}
}
您还可以选择调用SHCreateThread() - 相同的基本想法,但如果您提出要求,将为您执行一些shell类型初始化,例如初始化COM等。
答案 1 :(得分:3)
您可以使用CreateThread功能。
你也提到了信号量。为此,您将使用CreateSemaphore。
答案 2 :(得分:1)
原子操作和互斥体都很好。我使用CreateThread等,而不是pthreads。