Boost thread Library
Boost ๋ ๋ฒ์งธ, ์ค๋์ ์ฐ๋ ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๋ํด ์์๋ณด๊ฒ ์ต๋๋ค.
๋จผ์ , ์ฐ๋ ๋๋ผ๋ ๊ฒ์ ๋ฉ๋ชจ๋ฆฌ์ ์ฌ๋ผ๊ฐ ์๋ ํ ํ๋ก์ธ์ค ๋ด์์ ์คํ๋๋ ํ๋ฆ์ ๋จ์๋ฅผ ์ผ์ปซ๋ ๋ง์ ๋๋ค. ๋ณดํต์ ํ๋ก์ธ์ค๋ค์ ํ ๊ฐ์ ์ฐ๋ ๋๋ฅผ ๊ฐ์ง๊ณ ์์ง๋ง ๊ฒฝ์ฐ์ ๋ฐ๋ฅธ ํฐ ํ๋ก์ธ์ค๋ค์ ์ฌ๋ฌ ๊ฐ์ ํ๋ก์ธ์ค๋ฅผ ๊ฐ์ง๊ณ ์๋๋ฐ, ์ด๋ฅผ ๋ฉํฐ ์ฐ๋ ๋๋ผ๊ณ ์๊ธฐํฉ๋๋ค.
Boost์์ ์ฐ๋ ๋๋ฅผ ์ฌ์ฉํ๋ ค๋ฉด ์๋์ ํค๋ํ์ผ์ ์ฌ์ฉํด์ผํฉ๋๋ค.
#include <boost/thread.hpp>
or
#include <boost/thread/thread.hpp>
๋จผ์ ๊ฐ๋จํ ์ฐ๋ ๋ ์ฝ๋๋ก ์์ํด๋ณด๋๋ก ํฉ์๋ค.
t ๋ผ๋ ์ฐ๋ ๋ ๋ณ์๋ฅผ ์ฌ์ฉํด์ hello ํจ์์ ๋ด์ฉ์ ์ฐ๋ ๋๋ก ํํํ์ต๋๋ค. ์ดํ ์คํ๋๋ ์ฐ๋ ๋์ ์ฃผ์๋ฅผ ๊ฐ์ง๊ณ ์์ ์ถ๋ ฅํด ์ฐ๋ ๋๋ฅผ ์ข ๋ฃํ ํ์ ์ฃผ์๋ฅผ ๊ฐ์ง๊ณ ์์ ์ถ๋ ฅํด๋ดค์ต๋๋ค. ์ข ๋ฃ ํ์ ์ฃผ์๋ฅผ ๊ฐ์ ธ์์ ์ถ๋ ฅํ ์ด์ ๋ ์ ํํ ์ฐ๋ ๋๊ฐ ์ข ๋ฃ๋์ด์ ์ฃผ์๋ฅผ ์์๋์ง์ ํ์ธ ์ฌ๋ถ์ ๋๋ค.
์ฐ๋ ๋ ์ฃผ์๋ฅผ ์ถ๋ ฅํ์ผ๋ฉฐ ์ฐ๋ ๋๋ฅผ ์ด์ฉํด ํจ์๋ฅผ ๋ถ๋ฌ์ ํจ์์ ๋ด์ฉ์ ์ถ๋ ฅํ์ต๋๋ค. ๋ํ ์ฐ๋ ๋ ์ข ๋ฃ ํ์๋ ์ฐ๋ ๋ ์ฃผ์๊ฐ ๋ ์ด์ ํ์๋์ง ์๋ ๊ฒ์ ํ์ธํ ์ ์์ต๋๋ค.
Boost thread library๋ฅผ ์ด์ฉํด์ ์ค๋ ๋๋ฅผ interruptํ๋ ๊ฒ๋ ์ฝ๊ณ ๊ฐ๋จํ๊ฒ ๊ฐ๋ฅํฉ๋๋ค.
์ ์์ค๋ฅผ ํตํด์ interrupt()์ ํตํด ์ฐ๋ ๋๋ฅผ interrupt๋ฅผ ์ํฌ ์ ์์ต๋๋ค. ํ์ธ์ thread ํจ์์์ try catch ๋ฌธ์ ์ค ๊ฒ์ฒ๋ผ thread interrupted!๋ฅผ ํตํด์ ํ์ธํ์ค ์ ์์ต๋๋ค.
Boost thread library์ ๋จ์ .
์ฌ์ฉํด๋ณด๋ฉด์ ๋๋ ๊ฒ์ด์ง๋ง Boost thread library์๋ ๋จ์ ๋ค์ด ์์ต๋๋ค. ๋จผ์ ์ ๋ Boost Library 1.53 ๋ฒ์ ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ์ฉํฉ๋๋ค. ๊ทธ๋ฐ๋ฐ, ํนํ boost/thread.hpp์ ์์ค๋ฅผ ํฌํจํ ๋, ์ปดํ์ผ ํ ๋๋ ๊ทธ๋ ์ง๋ง ์๋ชป๋ object ํ์ผ ์์ฑ์ผ๋ก ์ ํํ ๊ฒฐ๊ณผ์ ๋์ถ์ ์ปค๋ ์ ํ ์๋ฑํ ๊ฑธ๊ณผ๋ฅผ ์ถ๋ ฅํด๋ฒ๋ฆฌ๋ ํ์์ด ๋ํ๋ฉ๋๋ค. ๋ฌผ๋ก ๋ฒ์ ์ ๋ฐ๋ฅธ ์ฐจ์ด๊ฐ ์๊ฒ ์ต๋๋ค๋ง ์์ง Boost Library๋ ๊ฐ๋ฐ ๋จ๊ณ ์ค์ธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ก thread ์ด์ธ ์ข ๋ ๋ฒ๊ทธ๊ฐ ์์ ๊ฒ์ด๋ผ ์๊ฐํฉ๋๋ค. object ํ์ผ์ ์ค์ฐจ๋ Eclipse์ ๊ฒฝ์ฐ clean์ผ๋ก ํด๊ฒฐ์ด ๊ฐ๋ฅํ๊ณ , ์ผ๋ฐ ์ฝ์ ์ปดํ์ผ์ ๊ฒฝ์ฐ, ๊ธฐ์กด์ object ํ์ผ ๋๋ out ํ์ผ์ ์ ๊ฑฐํ์๊ณ , ๋ค์ ์ปดํ์ผ ํ๋ฉด ์ ํํ ๊ฒฐ๊ณผ๊ฐ ๋์ค๊ธฐ๋ํฉ๋๋ค๋ง ์๋ชป๋ ๊ฒฐ๊ณผ๊ฐ ๋์ค๋ ๊ฒฝ์ฐ๋ ๊ฐํน ์กด์ฌํฉ๋๋ค. ๊ทธ๋์, ํ์๋ ์ ์ฝ๋ ์ค์์๋ boost/thread.hpp๋ณด๋ค๋ boost/thread/thread.hpp์ ์ฌ์ฉ์ ๊ถ์ฅํฉ๋๋ค. ์์ค๋ฅผ ์ง์ ๋ณด์๋ฉด ์ ๊ทธ๋ฐ ํ์์ด ๋ํ๋๋์ง ์กฐ๊ธ์ ์ดํด๊ฐ ๋ ๊ฒ๋๋ค ^^;
๋ ํ๊ฐ์ง, g++ ๋ช ๋ น์ด๋ฅผ ํตํ ์ฝ์ ์ปดํ์ผ์ ํ์๋ ๊ฒฝ์ฐ, ์ผ๋ฐ์ ์ธ ์ปดํ์ผ ๋ฐฉ๋ฒ์ผ๋ก๋ ์ปดํ์ผ์ด ์๋๋ ๊ฒฝ์ฐ๊ฐ ์์ต๋๋ค. g++ ๋ช ๋ น์ด๋ก ์ปดํ์ผ ํ ๋๋ l ์ต์ ์ธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ต์ ์ ์ฌ์ฉํด์ boost_system๊ณผ boost_thread ํญ๋ชฉ์ ์ถ๊ฐํด์ฃผ์ ์ผ ํฉ๋๋ค. Eclipse ์ฌ์ฉ์์ ๊ฒฝ์ฐ, ํ๋ก์ ํธ ์ต์ ์์ Library Settings์ ๋ฐ๋์ boost_system๊ณผ boost_thread๋ฅผ ์ถ๊ฐํด์ฃผ์ ์ผ ํฉ๋๋ค. ๊ทธ๋ ์ง ์์ผ๋ฉด ๊ตฌ๋ฌธ์ด ์ ํํ ์ฝ๋์ธ๋ฐ๋ ๋ถ๊ตฌํ๊ณ , ์ค๋ฅ๋ฅผ ์ถ๋ ฅํ๊ฒ ๋ฉ๋๋ค.
์ผ๋ฐ์ ์ผ๋ก object ํ์ผ๋ง ์ฃผ๊ณ ์ปดํ์ผ ํ ๊ฒฝ์ฐ.
l ์ต์ ์ ์ฃผ๊ณ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ง์ ํด์ผํฉ๋๋ค.
์ดํด๋ฆฝ์ค์ ๊ฒฝ์ฐ, ํ๋ก์ ํธ ์ ๋ณด์์ g++ Linker ๋ถ๋ถ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ง์ ์ง์ ํด์ฃผ์๊ณ , OK ๋๋ฌ์ฃผ์ ๋ค์ ๋น๋ํ๋ฉด ๋ฉ๋๋ค.
'Programming > C++' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
chkmd5 (ํ์ผ MD5 ํด์๊ฐ ๊ฐ์ ธ์ค๋ ํ๋ก๊ทธ๋จ, only Windows OS) (0) | 2017.01.26 |
---|---|
System Call Function VS Library Call Function (0) | 2016.12.26 |
GCC Stack Smashing Protector (0) | 2016.04.03 |
Boost Random Number Generator Library (0) | 2013.04.12 |
Boost Library (0) | 2013.04.12 |