@Karl - . A , B . B A, .
, psdocode Windows-ish. OS/ .
Windows. :
Thread A:
HANDLE running = CreateEvent(0, TRUE, FALSE, 0);
Thread A, Thread B, :
Thread A:
DWORD thread_b_id = 0;
HANDLE thread_b = CreateThread(0, 0, ThreadBMain, (void*)handle, 0, &thread_b_id);
A :
Thread A:
DWORD rc = WaitForSingleObject(running, INFINITE);
if( rc == WAIT_OBJECT_0 )
{
}
Thread B , :
Thread B:
DWORD WINAPI ThreadBMain(void* param)
{
HANDLE running = (HANDLE)param;
do_expensive_initialization();
SetEvent(running);
}