1
下面是一些代碼,我有atm。你可以選擇線程池中的線程來執行(boost)
int main()
{
boost::thread_group threads; // Thread Pool
// Here we create threads and kick them off by passing
// the address of the function to call
for (int i = 0; i < num_threads; i++)
threads.create_thread(&SendDataToFile);
threads.join_all();
system("PAUSE");
}
void SendDataToFile()
{
// The lock guard will make sure only one thread (client)
// will access this application at once
boost::lock_guard<boost::mutex> lock(io_mutex);
for (int i = 0; i < 5; i++)
cout << "Writing" << boost::this_thread::get_id() << endl;
}
此刻我只是使用cout而不是寫入文件。
是否有可能在另一個線程之前實際選擇一個線程來執行操作。所以我有一個我想要寫入的文件,4個線程想要同時訪問該文件,是否有可能讓我先說第2個線程。 ? in BOOST
fstream可以像cout一樣使用嗎?當我寫入文件的輸出不是混亂的(沒有互斥)?但是當我打印到沒有互斥體的控制檯時,就像你期望的那樣很麻煩。
鏈接可能會有所幫助http://en.wikipedia.org/wiki/Scheduling_%28computing%29 – user2202911 2015-01-21 10:27:16
@ user2202911有沒有關於此的任何提升示例? – CodersSC 2015-01-21 10:42:07
我不知道任何 - 對不起。 – user2202911 2015-01-21 10:47:43