API-интерфейсы потоков Windows и Solaris позволяют создавать поток в "приостановленном" состоянии. Поток начинается только тогда, когда он "возобновляется". Я привык к потокам POSIX, которые не имеют этой концепции, и я изо всех сил пытаюсь понять ее мотивацию. Может ли кто-нибудь предположить, почему было бы полезно создать "приостановленный" поток?
Вот простой иллюстративный пример. WinAPI позволяет мне это сделать:
t = CreateThread(NULL,0,func,NULL,CREATE_SUSPENDED,NULL);
// A. Thread not running, so do... something here?
ResumeThread(t);
// B. Thread running, so do something else.
По сравнению с эквивалентом POSIX (более простой):
// A. Thread not running, so do... something here?
pthread_create(&t,NULL,func,NULL);
// B. Thread running, so do something else.
Есть ли у кого-нибудь реальные примеры, где они могли что-то сделать в точке A (между CreateThread и ResumeThread), что было бы сложно в POSIX?