#include #include #include //NewMutex1.cpp volatile int data; // Parent process's global data void ThreadOne() { Sleep(100); data = 99; Sleep(100); data++; } void ThreadTwo() { data = 47; Sleep(100); data++; } void main(void) { HANDLE ThreadHandles[2]; DWORD ThreadOneID, ThreadTwoID; 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); // Wait for all threads to finish execution WaitForMultipleObjects(2, ThreadHandles, TRUE, INFINITE); cout << "Data is " << data << "\n"; }