Movatterモバイル変換


[0]ホーム

URL:


cppreference.com
Namespaces
Variants
    Actions

      std::thread::detach

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

      [edit template]
       
       
      Concurrency support library
      Threads
      (C++11)
      (C++20)
      this_thread namespace
      (C++11)
      (C++11)
      (C++11)
      Cooperative cancellation
      Mutual exclusion
      Generic lock management
      (C++11)
      (C++11)
      (C++11)
      (C++11)
      Condition variables
      (C++11)
      Semaphores
      Latches and Barriers
      (C++20)
      (C++20)
      Futures
      (C++11)
      (C++11)
      (C++11)
      Safe reclamation
      Hazard pointers
      Atomic types
      (C++11)
      (C++20)
      Initialization of atomic types
      (C++11)(deprecated in C++20)
      (C++11)(deprecated in C++20)
      Memory ordering
      (C++11)(deprecated in C++26)
      Free functions for atomic operations
      Free functions for atomic flags
       
       
      void detach();
      (since C++11)

      Separates the thread of execution from the thread object, allowing execution to continue independently. Any allocated resources will be freed once the thread exits.

      After callingdetach*this no longer owns any thread.

      Contents

      [edit]Parameters

      (none)

      [edit]Return value

      (none)

      [edit]Postconditions

      joinable isfalse.

      [edit]Exceptions

      std::system_error ifjoinable()==false or an error occurs.

      [edit]Example

      Run this code
      #include <chrono>#include <iostream>#include <thread> void independentThread(){std::cout<<"Starting concurrent thread.\n";std::this_thread::sleep_for(std::chrono::seconds(2));std::cout<<"Exiting concurrent thread.\n";} void threadCaller(){std::cout<<"Starting thread caller.\n";std::thread t(independentThread);    t.detach();std::this_thread::sleep_for(std::chrono::seconds(1));std::cout<<"Exiting thread caller.\n";} int main(){    threadCaller();std::this_thread::sleep_for(std::chrono::seconds(5));}

      Possible output:

      Starting thread caller.Starting concurrent thread.Exiting thread caller.Exiting concurrent thread.

      [edit]References

      • C++23 standard (ISO/IEC 14882:2024):
      • 33.4.3.6 Members [thread.thread.member]
      • C++20 standard (ISO/IEC 14882:2020):
      • 32.4.2.5 Members [thread.thread.member]
      • C++17 standard (ISO/IEC 14882:2017):
      • 33.3.2.5 thread members [thread.thread.member]
      • C++14 standard (ISO/IEC 14882:2014):
      • 30.3.1.5 thread members [thread.thread.member]
      • C++11 standard (ISO/IEC 14882:2011):
      • 30.3.1.5 thread members [thread.thread.member]

      [edit]See also

      waits for the thread to finish its execution
      (public member function)[edit]
      checks whether the thread is joinable, i.e. potentially running in parallel context
      (public member function)[edit]
      C documentation forthrd_detach
      Retrieved from "https://en.cppreference.com/mwiki/index.php?title=cpp/thread/thread/detach&oldid=129256"

      [8]ページ先頭

      ©2009-2025 Movatter.jp