在Windows上使用C中的线程。简单的例子?

时间:2009-12-30 17:49:17

标签: c windows multithreading semaphore

我需要什么以及如何在Windows Vista上使用C语言中的线程?

你能给我一个简单的代码示例吗?

3 个答案:

答案 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。