std thread中獲取當前執行緒的系統id

2021-09-08 20:20:23 字數 360 閱讀 1778

std::thread不提供獲取當前執行緒的系統id的方法,僅可以獲取當前的執行緒id,但是我們可以通過建立索引表的方式來實現

1

std::mutex m;

2 std::mapthreads;

3void48

void wrap(void (*f)())

9

而後用其建立執行緒

1 std::thread t1(&wrap, &sayhello);

然後用如下方式獲取執行緒id

1 pid_t tid = 0;2

while (tid == 0)3

**:

Windows Linux下獲取當前執行緒的ID號

序 在多執行緒場合,為了方便跟蹤執行緒的執行狀態,往往需要在程式中新增列印當前執行緒id號的功能。1.linux下列印當前執行緒idpthread t pthread self 2.windows下列印當前執行緒iddword getcurrentthreadid ifdef win32 inclu...

c 獲取執行緒id 高效獲取當前執行緒的 id

可以利用微軟提供的 api,輕鬆獲取當前執行緒的 id int id getcurrentthreadid linux 平台一般用的是 pthread 執行緒庫,但它並不提供獲取執行緒內部 id 的方法。可以通過系統呼叫得到當前執行緒的 id include for syscall include ...

如何中斷當前執行緒

中斷當前執行緒有兩種方式。第一種方式是通過呼叫執行緒的stop 方法,第二種方式通過呼叫interrupt 方法。由於第一種方式是不安全的,所以本篇文章不做討論,主要分享一下如何使用interrupt 方法來中斷執行緒。thread類中提供了三個中斷執行緒的方法,如下圖 方法詳情 public cl...