有人可以给我一个例子,如何创建在C++中,能同时运行两个功能的简单应用程序?我知道这个问题与线程管理和多线程有关系,但我基本上是一个PHP程序员,我并不熟悉高级C++编程。
1
A
回答
9
这里有一个简单的例子:
#include <iostream>
#include <thread>
void f1() { std::cout << "This is function 1.\n"; }
void f2() { std::cout << "This is a different function, let's say 2.\n"; }
int main()
{
std::thread t1(f1), t2(f2); // run both functions at once
// Final synchronisation:
// All running threads must be either joined or detached
t1.join();
t2.join();
}
如果你的功能需要产生的返回值,你应该结合以上线程对象与std::packaged_task
可运行对象,可从<future>
获得,它们使您可以访问线程函数的返回值。
2
我打算让你做研究自己,但一个简单的方法来实现这一目标是有std::async
:
http://en.cppreference.com/w/cpp/thread/async
请注意,这是并发的,但不一定是同时进行。
我相信升压有这个太 - 它要么在Boost.Thread或Boost.Asio的
+2
'std :: async'并没有真正承诺任何特定的执行顺序。另外,它更适合于*异步生成一个值*而不是“同时运行一个函数”......也许我可以得到一个'std :: packaged_task',但为了说明的目的,一个扁平的'std :: thread似乎就够了。 –
相关问题
- 1. C++中的多线程应用程序
- 2. 如何正确关闭创建多个线程的C#应用程序?
- 3. 多线程应用程序,即时创建新线程?
- 4. 如何使用wpf调度程序创建多UI线程winforms应用程序
- 5. 多线程应用程序 - C++/Debian的
- 6. 的HelloWorld多线程C#应用程序
- 7. 使用boost库在vc6中创建多线程应用程序?
- 8. 如何创建twilio C++应用程序
- 9. 创建多个线程C++
- 10. 如何在python GUI应用程序中创建线程?
- 11. C多线程应用程序结构
- 12. 多线程c#应用程序
- 13. c#多线程应用程序
- 14. 建模多线程应用程序
- 15. 如何为多线程应用程序
- 16. 单线程类在多线程应用程序中创建问题吗?
- 17. 如何在Microsoft bot应用程序中创建子线程或工作线程
- 18. C#我应该如何着手创建这个线程应用程序?
- 19. 多线程应用程序中的易失性C/C++
- 20. 如何使用Node.js创建多线程应用程序,访问LevelDB?
- 21. C#应用程序线程
- 22. 如何在android中创建多线程?
- 23. 创建多线程Java服务器聊天应用程序。
- 24. llvm-g ++创建多线程应用程序
- 25. Django:如何在应用程序中创建许多应用程序字段
- 26. 多线程应用程序
- 27. 如何为Android应用程序创建线程管理器?
- 28. c#windows应用程序中的线程
- 29. 多线程应用程序中的System.setproperty
- 30. 多线程应用程序中的SetCurrentDirectory
使用来自boost和C++ 11的'thread'类! – Naszta
* Imp *:Boost是pthreads的封装。所以你可能想看看[pthreads](https://computing.llnl.gov/tutorials/pthreads/)。 – axiom
我的问题对我来说应该是“-1”吗? –