Learning critical section with pthread
I've just started to learn how to implement multi-threaded programming.
It's very easy because we just need to call two APIs, such as
- pthread_create : Create a new thread
- pthread_join : Join with a terminated thread
In the following program, global variable "gNum" is incremented by several threads.
The number of threads are defined as "THREAD_NUM".
The fourth argument "loop" means the number of incrementation per one thread.
In the for-loop inside addFunc function, gNum is read and updated.
If at least two thread try to read gNum at the same time, gNum variable won't be updated correctly.
Finally, this program can't achieve that gNum is equal to ( THREAD_NUM * loop ).
In the for-loop inside addFunc function, gNum is read and updated.
If at least two thread try to read gNum at the same time, gNum variable won't be updated correctly.
Finally, this program can't achieve that gNum is equal to ( THREAD_NUM * loop ).
コメント
コメントを投稿