在 Linux 中进行 C++ 多线程开发,通常需要使用 POSIX 线程库(pthread)
#include <iostream>
#include <pthread.h>
线程函数是线程执行的入口点。它应该返回一个 void*
类型的指针,并接受一个 void*
类型的参数。
void* thread_function(void* arg) {
// 线程执行的代码
std::cout << "Hello from thread!" << std::endl;
return nullptr;
}
使用 pthread_create
函数创建一个新线程。该函数接受四个参数:线程函数指针、指向线程参数的指针、线程属性对象指针(通常为 nullptr
)和新线程的标识符。
int main() {
pthread_t thread_id;
int rc;
// 创建线程
rc = pthread_create(&thread_id, nullptr, thread_function, nullptr);
if (rc != 0) {
std::cerr << "Error: pthread_create failed" << std::endl;
return 1;
}
// 等待线程结束
pthread_join(thread_id, nullptr);
return 0;
}
使用 g++
编译器编译并运行上述代码:
g++ -o my_program my_program.cpp -lpthread
./my_program
这将输出 “Hello from thread!”,表示新线程已成功执行。
注意:在实际项目中,你可能需要使用互斥锁、条件变量等同步原语来避免竞争条件和死锁等问题。此外,你还可以考虑使用 C++11 标准中的 <thread>
库,它提供了更高级的线程管理功能。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。