C++ std::thread 的基本使用方法&&Linux强制结束进程

std::thread 是 C++11 中的一个多线程库,用于创建和管理线程。使用 std::thread,可以将一个函数或可调用对象作为参数,创建一个新的线程来运行该函数或对象。

下面是 std::thread 的基本用法:

  1. 包含头文件#include < thread >

  2. 定义一个函数或可调用对象,该函数或对象将在新线程中运行。

  3. 创建一个 std::thread 对象,并将上述函数或对象作为参数传递给它。

  4. 启动线程,使用 std::thread 对象的成员函数 join() 等待线程结束。

下面是一个简单的示例代码,展示了 std::thread 的用法:

#include 
#include 

void hello() {
    std::cout << "Hello, world!" << std::endl;
}

int main() {
    std::thread t(hello); // 创建一个线程,运行 hello 函数
    t.join(); // 等待线程结束
    return 0;
}

在上面的代码中,我们定义了一个名为 hello 的函数,该函数将在新线程中运行。然后我们创建了一个 std::thread 对象 t,并将 hello 函数作为参数传递给它。最后,我们调用了 t.join(),等待线程结束。

需要注意的是,std::thread 对象一旦被创建,就不能复制或赋值,只能移动。如果需要多个线程运行同一个函数,可以使用 std::ref() 来将函数包装成一个可调用对象,并将该对象作为参数传递给 std::thread。

另外,std::thread 还提供了一些其他的成员函数,例如 detach(),可以将线程分离,使其在后台运行,不再受到 join() 的限制。不过,使用 detach() 需要格外小心,因为分离的线程可能会在主线程结束时仍然在运行,从而导致程序崩溃或不可预料的行为。

备注:Linux中强制结束进程

pgrep 进程名 // 获取进程id
kill -9 进程id

你可能感兴趣的:(c++,开发语言,linux)