일단  <thread> 즉, C++ 표준 쓰레드 라이브러리를 기준으로 할 때,

thread 객체가 살아있는 한 그 객체가 담고 있는 쓰레드는 계속 기동함

대다수의 경우 main 이 끝나면 모든 thread 객체들의 소멸자가 불려지기 때문에(main이 최상위 소유자인 경우가 많으니까)

쓰레드 들이 끝나는걸로 해석하는 것 같은데,


thread.detach() 를 하면 쓰레드 객체의 존재 여부와 상관 없이 쓰레드 끝까지 작동해야 꺼지기 때문에,

main() 종료 후에도 쓰레드는 계속 작동한다는 것 같음 (확인은 안 해봄)

http://stackoverflow.com/questions/19744250/what-happens-to-a-detached-thread-when-main-exits


근데 게시물에서도 확실히 아는 사람은 없는 것 같고,

심지어 undefined behavior 라고 하는 사람까지 있는듯


근데 아까 ㅇㅇ 이 올린 링크상으로는, 순수한 win32 구현 하에서는 main 과 관계없이 쓰레드는 계속 살아있는거라고 함