Get the App
SLTechnology News&Howtos  ›  Servers  › 

1. (LINUX thread synchronization) introduction

Shulou Source: shulou.com Published: 2022-06-02 06:33:43 09月18日 Update

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

Tags: Atom thread code that is process problem synchronization utility larger advantage author congenital memory region variable actually will be right performance means. Apple Docker Huawei Linux macOS MariaDB Microsoft MySQL NVidia OPPO Reno Xiaomi macOS Microsoft OPPO Reno Apple