#include #include #include int data; // Parent process's global data void ThreadOne() { DWORD i; i = 0; while (i < 100000) { data = 1; Sleep(1000); i++; } } void ThreadTwo() { DWORD i; i = 0; while (i < 100000) { data = 2; Sleep(5000); i++; } } void main(void) { HANDLE ThreadHandles[2]; DWORD ThreadOneID, ThreadTwoID; DWORD count; data = 0; ThreadHandles[0] = CreateThread( 0,0, (LPTHREAD_START_ROUTINE) ThreadOne, 0, 0, &ThreadOneID); ThreadHandles[1] = CreateThread( 0,0, (LPTHREAD_START_ROUTINE) ThreadTwo, 0, 0, &ThreadTwoID); count = 0; while (count < 100000) { cout << "data is " << data << ", count is " << count << "\n"; count++; } // Wait for all threads to finish execution WaitForMultipleObjects(2, ThreadHandles, TRUE, INFINITE); }