Terlambat, tetapi bagi pengguna yang mencari jawaban, boost memungkinkan untuk melihat id thread seperti yang Anda katakan, cukup panggil metode berikut:
boost::this_thread::get_id()
Metode ini mengembalikan tipe id internal dari boost, yang bukan numerik seperti yang Anda inginkan. Namun Anda dapat dengan mudah mengonversi angka ini menjadi, misalnya, unsigned long dengan mempertimbangkan bahwa id memiliki representasi heksadesimal. Fungsi kecil ini akan berfungsi de Job:
#include <boost/lexical_cast.hpp>
#include <boost/thread.hpp>
unsigned long getThreadId(){
std::string threadId = boost::lexical_cast<std::string>(boost::this_thread::get_id());
unsigned long threadNumber = 0;
sscanf(threadId.c_str(), "%lx", &threadNumber);
return threadNumber;
}
void drawThreadId(){
std::cout << getThreadId() << std::endl;
boost::this_thread::sleep(boost::posix_time::milliseconds(500));
}
int main() {
for(int i=0; i<10; i++){
boost::thread thread = boost::thread(drawThreadId);
}
return 0;
}
Ini akan mengembalikan sesuatu seperti ini:
4491075584
4491612160
4492148736
4492685312
4493221888
4493758464
4494295040
4494831616
4495368192
4495904768
Jangan lupa link dengan boost_thread dan boost_system.
Semoga ini membantu!
person
Alvaro Luis Bustamante
schedule
20.06.2013