Hi I'm starting with threads in c++ in Windows.
#include <iostream>
#include <thread>
#include <windows.h>
using namespace std;
static const int num_threads = 2;
CRITICAL_SECTION critSection;
int thread1 ( int id ) {
EnterCriticalSection ( &critSection );
cout <<"thread1 had id: " << id<<endl;
LeaveCriticalSection ( &critSection );
return 15;
}
void thread2() {
EnterCriticalSection ( &critSection );
cout << "Sleeping"<< endl;
LeaveCriticalSection ( &critSection );
Sleep ( 20 );
EnterCriticalSection ( &critSection );
cout << "No more"<< endl;
LeaveCriticalSection ( &critSection );
}
int main() {
thread t[num_threads];
InitializeCriticalSection ( &critSection );
t[0]=thread ( thread2);
t[1] = thread ( thread1, 1 );
EnterCriticalSection ( &critSection );
LeaveCriticalSection ( &critSection );
t[0].join();
t[1].join();
DeleteCriticalSection ( &critSection );
return 0;
}
so my question is simple, how do I get return value from thread1, and second question is, is this correct way to do multithreading in C++?