KnowledgeHub
Questions
Tags
Users
Search
Alex Rivera
|
Logout
Edit Question
Title
Body
I'm implementing Inter-Thread Communication using global variable. //global var volatile bool is_true = true; //thread 1 void thread_1() { while(1){ int rint = rand() % 10; if(is_true) { cout << "thread_1: "<< rint <<endl; //thread_1 prints some stuff if(rint == 3) is_true = false; //here, tells thread_2 to start printing stuff } } } //thread 2 void thread_2() { while(1){ int rint = rand() % 10; if(! is_true) { //if is_true == false cout << "thread_1: "<< rint <<endl; //thread_2 prints some stuff if(rint == 7) //7 is_true = true; //here, tells thread_1 to start printing stuff } } } int main() { HANDLE t1 = CreateThread(0,0, thread_1, 0,0,0); HANDLE t2 = CreateThread(0,0, thread_2, 0,0,0); Sleep(9999999); return 0; } Question In the code above, I use a global var volatile bool is_true to switch printing between thread_1 and thread_2. I wonder whether it is thread-safe to use assignment operation here ?
Tags (comma-separated)
Save Edits
Cancel