![](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FlpSGO%2FbtqFPrJPTVL%2F7J98pjXuvOD7Ks08RKZ4h1%2Fimg.png)
๋ชฉ์ฐจ ๋ฐฐ์ด ์ ์ธ ์ด๊ธฐํ ์ ๊ทผ ๋ค์ฐจ์ ๋ฐฐ์ด ํฌ์ ํ๋ ฌ ํํ ์ฃผ์์ ํฌ์ธํฐ ํฌ์ธํฐ ํน์ง ์ ์ฝ ๋์ ๋ฉ๋ชจ๋ฆฌ ํ ๋น ๋์ ๋ฐฐ์ด(vector) ๋ฌธ์์ด ์ ์ธ ์ด๊ธฐํ ํจ์ ๋ฐฐ์ด / ๋ฌธ์์ด ๋ฐฐ์ด ๋ฐฐ์ด์ด๋ ๋จ์ผ ์๋ณ์๋ก _๊ฐ์ ์๋ฃํ_์ ์ฌ๋ฌ ๋ณ์๋ฅผ ์ ๊ทผํ ์ ์๊ฒ ํด์ฃผ๋ ์๋ฃ๊ตฌ์กฐ์ด๋ค. ์ ์ธ c++์์๋ int arr[3];์ ๊ฐ์ด ์๋ฃํ ๋ฐฐ์ด์ด๋ฆ[๋ฐฐ์ด ๊ธธ์ด];๋ก ๋ณ์๋ฅผ ์ ์ธํ๋ค. ์ด ๋, ๋๊ดํธ ๋ด์ ์์์ ๊ฐฏ์๋ '์ปดํ์ผ ํ์ ์์'์ฌ์ผํ๋ค. ์์ค์ฝ๋๋ฅผ ์ปดํ์ผํ ๋, ๊ณ ์ ๋ฐฐ์ด์ ๊ธธ์ด๋ฅผ ์์์ผํ๊ธฐ ๋๋ฌธ์ด๋ค. ๋ฐ๋ผ์ ๋งคํฌ๋ก ๊ธฐํธ ์์ (ex_ #define ARRAY_LEN 5)๋ ์ด๊ฑฐ์(ex_enum A{ARRAY_LEN = 5})๋ ๋ฐฐ์ด์ ๊ธธ์ด๋ก ์ฌ์ฉํ ์ ์๋ค. const ๋ํ ์ปดํ์ผ ์ ๊ณ ์ ๋๋ ์์์ด๋ฏ๋ก ์ฌ์ฉ๊ฐ..
![](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FOjB36%2FbtqFkTmUKuW%2FbKsCRCkdSNrofeZiKXfsQ1%2Fimg.png)
๋ชฉ์ฐจ ๋ฌธ์ ์ ์ lock free ๊ตฌํ ABA ํด๊ฒฐ intํ ๊ตฌํ(+ Hazard pointer) Counter ๊ทธ ์ธ์ ๋ฐฉ๋ฒ๋ค mutex lock(spin lock)๊ณผ์ ๋น๊ต ABA ํด๊ฒฐ intํ ๊ตฌํ ABA ๋ฌธ์ ๋ ๋งค๊ฐ๋ณ์๋ฅผ intํ์ผ๋ก ๊ตฌํํ๋ฉด ์ฝ๊ฒ ํด๊ฒฐํ ์ ์๋ค. ํ์ง๋ง ๋ฌธ์ ์ ์ ์กด์ฌํ๋ค(๋ท๋ถ๋ถ์ ์ธ๊ธ). ์ฝ๋ #define _CRT_SECURE_NO_WARNINGS #define NULL_INT -1 // NULL ๊ฐ #include #include #include #include #include // #include #include using namespace std; struct Node { int data; Node* next_node; }; int node_n; atomic free_l..
Comment