21xrx.com
2024-09-19 09:26:56 Thursday
登录
文章检索 我的文章 写文章
C++创建多线程的几种方式
2023-07-02 12:11:18 深夜i     --     --
C++ 多线程 创建方式 线程函数 线程同步

C++是一种强大的编程语言,提供了多种创建多线程的方法。在计算机科学中,多线程是非常实用的一项技术,它可以将一个程序分成多个线程同时运行,从而提高程序的运行效率和响应速度。以下是C++创建多线程的几种方式。

1.使用标准库

C++标准库提供了一个线程库,其中包含了一些函数和类,可以用于创建和控制线程。使用这种方式需要引入线程头文件,然后使用std::thread类来创建线程,例如:


#include <thread>

void func1()

 // 线程函数1

void func2()

 // 线程函数2

int main() {

 std::thread t1(func1);

 std::thread t2(func2);

 t1.join();

 t2.join();

 return 0;

}

在上面的代码中,我们定义了两个线程函数func1和func2。然后使用std::thread类来创建两个线程。最后调用t1.join()和t2.join()来等待这两个线程的结束。

2.使用POSIX线程

POSIX线程是一个跨平台的线程API,可以在很多不同的操作系统上使用。使用这种方式需要使用pthread库,并包含pthread.h头文件。例如:


#include <pthread.h>

void* func1(void* arg)

 // 线程函数1

 return nullptr;

void* func2(void* arg)

 // 线程函数2

 return nullptr;

int main() {

 pthread_t t1, t2;

 pthread_create(&t1, nullptr, func1, nullptr);

 pthread_create(&t2, nullptr, func2, nullptr);

 pthread_join(t1, nullptr);

 pthread_join(t2, nullptr);

 return 0;

}

在上面的代码中,我们定义了两个线程函数func1和func2,并使用pthread_create函数来创建这两个线程。

3.使用Windows线程

Windows线程是Windows操作系统下的线程API,可以用于创建和控制线程。使用这种方式需要使用Windows.h头文件。例如:


#include <Windows.h>

DWORD WINAPI func1(LPVOID lpParam)

 // 线程函数1

 return 0;

DWORD WINAPI func2(LPVOID lpParam)

 // 线程函数2

 return 0;

int main() {

 HANDLE h1 = CreateThread(nullptr, 0, func1, nullptr, 0, nullptr);

 HANDLE h2 = CreateThread(nullptr, 0, func2, nullptr, 0, nullptr);

 WaitForSingleObject(h1, INFINITE);

 WaitForSingleObject(h2, INFINITE);

 return 0;

}

在上面的代码中,我们定义了两个线程函数func1和func2,并使用CreateThread函数来创建这两个线程。最后调用WaitForSingleObject函数来等待这两个线程的结束。

以上是C++创建多线程的几种方式。选择合适的方式创建多线程可以极大地提高程序的运行效率和响应速度。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复