21xrx.com
2025-03-27 23:39:59 Thursday
文章检索 我的文章 写文章
如何在C++中实现多线程创建
2023-07-05 02:56:54 深夜i     20     0
C++ 多线程 创建 线程安全 互斥锁

在现代计算机系统中,多线程并发编程已经成为了一种重要的技术,通过多线程编程可以使程序的效率和响应能力得到极大的提升。在C++中,多线程编程是一个非常重要的主题,下面我们来介绍如何在C++中实现多线程的创建。

C++中实现多线程的创建主要有两种方法:一种是使用操作系统提供的线程库,另一种是使用C++标准库(std::thread)。下面我们来分别介绍这两种方法。

一、使用操作系统提供的线程库

在C++中使用操作系统提供的线程库创建线程需要包含操作系统提供的线程头文件。在Windows系统中,需要包含windows.h头文件,在Linux系统中,需要包含pthread.h头文件。

在Windows系统中,可以使用CreateThread()函数创建线程,该函数需要传入线程的入口函数以及线程的参数。在Linux系统中,可以使用pthread_create()函数创建线程,该函数也需要传入线程的入口函数以及线程的参数。具体代码如下:

Windows:

#include <windows.h>
DWORD WINAPI ThreadProc(LPVOID lpParameter)
  // 线程执行的函数
int main()
{
  HANDLE hThread = CreateThread(NULL, 0, ThreadProc, NULL, 0, NULL);
  if (hThread != NULL)
  {
    WaitForSingleObject(hThread, INFINITE);
    CloseHandle(hThread);
  }
  return 0;
}

Linux:

#include <pthread.h>
void* ThreadProc(void* arg)
  // 线程执行的函数
int main()
{
  pthread_t tid;
  int ret = pthread_create(&tid, NULL, ThreadProc, NULL);
  if (ret == 0)
  {
    pthread_join(tid, NULL);
  }
  return 0;
}

二、使用C++标准库(std::thread)

C++11标准引入了std::thread类,可以方便地创建线程。使用std::thread类创建线程只需要包含 头文件,然后使用std::thread类的构造函数创建线程对象即可。具体代码如下:

#include <thread>
void ThreadProc()
  // 线程执行的函数
int main()
{
  std::thread t(ThreadProc);
  t.join();
  return 0;
}

以上就是在C++中实现多线程创建的两种方法,使用操作系统提供的线程库需要了解操作系统的线程实现方式,比较底层;而使用std::thread类则更加便捷,能够实现跨平台的多线程编程,是一种更加推荐的方法。

  
  

评论区

请求出错了