0

我宁愿不下载任何东西,但如果必须,我可以这样做。我只是想在许多在线编译器上使用 Boost 库运行一个简单的多线程程序,但他们甚至都不认识

#include <boost/thread.hpp>

using namespace boost::this_thread;

代码本身取自此链接: https ://www.quantnet.com/threads/c-multithreading-in-boost.10028/

我已经完成了谷歌搜索并尝试了很多在线编译器,但似乎没有一个愿意识别 Boost 或其相关库。

这是代码:

#include <iostream>
#include <boost/thread.hpp>

using namespace std;
using namespace boost;
using namespace boost::this_thread;

// Global function called by thread
void GlobalFunction()
{
   for (int i=0; i<10; ++i) {
       cout<< i << "Do something in parallel with main method." << endl;
       boost::this_thread::yield(); // 'yield' discussed in section 18.6
   }
}

int main()
{
    boost::thread t(&GlobalFunction);
    for (int i=0; i<10; i++) {
        cout << i <<"Do something in main method."<<endl;
    }
    return 0;
}
4

3 回答 3

1

只需使用 C++11 线程。Ideone 显然禁用了线程,但我在http://www.compileonline.com/上运行它没有问题(一定要选择 C++11 而不是 C++)

#include <iostream>
#include <thread>
// Global function called by thread
void GlobalFunction()
{
    for (int i = 0; i < 10; ++i)
    {
        std::cout << i << "Do something in parallel with main method." << std::endl;
        std::this_thread::yield(); // 'yield' discussed in section 18.6
    }
}


int main()
{
    std::thread t(&GlobalFunction);

    for (int i = 0; i < 10; i++)
    {
        std::cout << i << "Do something in main method." << std::endl;
    }


    return 0;
}
于 2013-10-15T03:35:02.673 回答
0

如果您需要使用 boost,则必须下载它……这些标题在您的计算机上不存在。

于 2013-10-15T03:30:25.997 回答
0

Wandbox是一个包含 BOOST 库的在线 C++ IDE。它支持最新的 BOOST 版本(当前为 1.67.0)

注意:您的代码示例在最高 1.64.0 的 BOOST 版本中运行良好。

于 2018-04-18T12:54:06.303 回答