برای بدست آوردن thread جاری که در حال اجرای تابع شماست بایستی از std::this_thread استفاده کنید و از آنجایی که اطلاع دارید هر thread حاوی یک id هستش که می تونید با متد get_id() دریافتش کنید. به مثال زیر دقت کنید.
#include <iostream>
#include <thread>
#include <chrono>
#include <mutex>
std::mutex g_display_mutex;
void foo()
{
std::thread::id this_id = std::this_thread::get_id();
g_display_mutex.lock();
std::cout << "thread " << this_id << " sleeping...\n";
g_display_mutex.unlock();
std::this_thread::sleep_for(std::chrono::seconds(1));
}
int main()
{
std::thread t1(foo);
std::thread t2(foo);
t1.join();
t2.join();
}