1. (LINUX thread synchronization) introduction
If there is a mistake in the limited level of originality, please point out
Threads have the inherent advantage of data sharing over processes. As shown in the following figure, threads share all the memory areas of the process except the stack area, as shown below:
But this kind of sharing sometimes brings problems. Simply consider the following C++ code:
Click (here) to collapse or open
{
Int b = 0
B = a
A = bread1
Return * this
}
It's the critical area code.
They will be described later, and here we are simple and practical static mutexes to solve this problem.
Click (here) to collapse or open
/ / Atomic operation locking
Pthread_mutex_lock & mtx)
+ + test
Pthread_mutex_unlock & mtx)
/ / Atomic operation unlock
Cout Created Time: Mon 15 May 2017 12:01:33 AM CST
* * /
# include
# include
# include
# define MAXOUT 1000000
Using namespace std
Static pthread_mutex_t mtx=PTHREAD_MUTEX_INITIALIZER
Class testc
{
Private:
Int a
Public:
Testc ()
{
A = 1
}
Testc& operator++ ()
{
Int b = 0
B = a
A = bread1
Return * this
}
Void prit ()
{
Cout