好问题
Good  Question
  • 首 页
  • 问题
    • PHP
    • JAVA
    • CPlusPlus
    • C#
    • SQL
  • 关 于
  • 联 系
如何在C++中使用线程,有没有简单的例子? 关闭 返回上一级  

如何在C++中使用线程,有没有简单的例子?
+ 查看更多

发布日期:2018-02-26 15:50
分类:CPlusPlus
浏览次数:113
如何在C++中启动两个面向对象的线程?有人可以发布一个简单的例子吗?
我正在找C++线程对象,并可以扩展的方法(或类似的东西),而不是直接调用一个C语言的线程库。更新:我对操作系统没有具体的要求,希望回答的人将会回复与跨平台库的使用有关。我现在只是使问题容易理解。

回答:

创建一个你想要线程执行的函数。我将用一个简单的例子来演示:
void task1(std::string msg)
{
    std::cout << "task1 says: " << msg;
}
现在创建一个最终将调用上方函数的线程对象,如下所示:
std::thread t1(task1, "Hello");
你需要使用 #include 来调用 std::thread 类。如你所见,构造函数的参数是函数即将执行的线程,接下来是函数的参数。最后,将它加入到你的主线程,如下:
t1.join();
(Join()函数意味着调用新线程的线程将等待新线程执行完成,然后它将继续执行自己)
代码:
#include 
#include 
#include 

using namespace std;

// The function we want to execute on the new thread.
void task1(string msg)
{
    cout << "task1 says: " << msg;
}

int main()
{
    // Constructs the new thread and runs it. Does not block execution.
    thread t1(task1, "Hello");

    // Makes the main thread wait for the new thread to finish execution, therefore blocks its own execution.
    t1.join();
}
此处更多的关于std::thread 的信息:在GCC上, 使用-std=c++0x -pthread编译。假如你的编译器支持(C++11)这一功能,那么这应该适用于任何操作系统。
 
上一篇在C++如何检查一个字符串包含另一个字符串
在C++中如何获得当前时间和日期?下一篇
下一篇在C++中如何获得当前时间和日期?

最新文章

  • 函数`__construct`用来干嘛的
    发布日期:2018-03-26
  • 通过访客的IP得到他们的地区
    发布日期:2018-03-26
  • 合并两个PHP对象的最好的方法是什么?
    发布日期:2018-03-26
  • 该如何把一该如何把一个对象转化成数组?
    发布日期:2018-03-26
  • 什么是输出缓冲区?
    发布日期:2018-03-26
  • 在PHP中怎么把用逗号分隔的字符串分隔在一个数组里?
    发布日期:2018-03-26
  • 在PHP中使用foreach循环时查找数组的最后一个元素
    发布日期:2018-03-26
关于好问
收集整理一些有用的问题和回答,造福中国的程序旺和IT喵们!
友情链接
起飞页 
相关信息
版权声明
Copyright © 2016 - 2022  苏州卡达网络科技有限公司 备案号:苏ICP备09008221号