# std::hash<std::thread::id>

From cppreference.com
< cpp‎ | thread‎ | thread‎ | id

Defined in header `<thread>` |  |
template<> struct hash<std::thread::id>; |  | (since C++11)

The template specialization of std::hash for the std::thread::id class allows users to obtain hashes of the identifiers of threads.

### Example

| This section is incomplete Reason: example that uses hash meaningfully

Run this code

    #include <chrono>
    #include <iostream>
    #include <thread>
    #include <vector>
    using namespace std::chrono_literals;

    void foo()
    {
        std::this_thread::sleep_for(10ms);
    }

    int main()
    {
        std::vector<std::thread> v;
        for (int n = 0; n < 4; ++n)
            v.emplace_back(foo);

        std::hash<std::thread::id> hasher;
        for (auto& t : v)
        {
            std::cout << "thread " << t.get_id() << " hashes to "
                      << hasher(t.get_id()) << '\n';
            t.join();
        }
    }

Possible output:

    thread 139786440144640 hashes to 8905351942358389397
    thread 139786431751936 hashes to 9222844670065909738
    thread 139786423359232 hashes to 18199000599186780501
    thread 139786414966528 hashes to 15386662774029264672

### See also

hash (C++11) | hash function object (class template)

Retrieved from "https://en.cppreference.com/mwiki/index.php?title=cpp/thread/thread/id/hash&oldid=161280"