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++ ではなく C++11 を選択してください) 。

#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

ブーストを使用する必要がある場合は、ダウンロードする必要があります...これらのヘッダーはコンピューターに存在しません。

于 2013-10-15T03:30:25.997 に答える