最終更新日時: 2025年07月12日 02時16分44秒 (JST)
Koichi Murase が更新

履歴 編集

function
<thread>

# std::thread::native_handle(C++11)

    native_handle_type native_handle();

## 概要

スレッドのハンドルを取得する

## 効果

この関数は、実装依存のスレッドのハンドルを返す。

- Unix系環境におけるlibstdc++とlibc++では、`pthread_t`を表す。
- Visual C++では、Windowsのスレッドハンドル`HANDLE`を表す。ただし、`native_handle_type`は`void*`型の別名である。`HANDLE`も`void*`型の別名であり、別途`<windows.h>`または`<wtypes.h>`をインクルードすると`HANDLE`型が使用できる。

ハンドル型に対する操作は汎用的ではないため、環境依存のプログラミングが必要な場合に使用する。

## 戻り値

実装依存のスレッドハンドル

## 例

    #include <thread>
    #include <iostream>
    #include <windows.h>

    void func() {
      std::cout << "func" << std::endl;
    }

    int main() {
      std::thread t(func);
      SetThreadPriority(t.native_handle(), THREAD_PRIORITY_IDLE);
      t.join();
    }

### 出力

    func

## バージョン

### 言語

- C++11

### 処理系

- Clang: ??
- GCC: ??
- ICC: ??
- Visual C++: 2012 ✅, 2013 ✅, 2015 ✅

## 参照