thread 3

[Wiki] Ubuntu 환경의 Eclipse CDT에서 thread 사용시 undefined references with pthread create 가 뜨는 경우 해결 방법

기본적으로 Linux 환경에서 thread를 사용하기 위해서는 pthread를 이용하게 됩니다. 그리고 C나 C++을 이용해서 thread 라이브러리를 이용하고자 할 때에는 -pthread 옵션을 줘서 컴파일을 하게 됩니다. 다만 Eclipse CDT에서 컴파일 시에 -pthread 옵션을 주고자 여러 시도를 해보았는데, 계속 오류가 나서.. 열심히 구글링하다가 찾은 방법을 공유합니다. 1. Project -> Properties 메뉴에 들어갑니다. 2. C/C++ Build -> Settings 메뉴에 들어갑니다. 3. Settings 메뉴에서 Tool Settings 탭을 누릅니다. 4. GCC c++ Linker 옵션에 보면, Libraries 옵션이 있습니다. 우측 상단에 있는 초록색 + 버튼을 ..

IT/Coding Tip 2020.02.03

[C++] C++에서 std::thread를 어떻게 종료시킬 수 있을까?

시작하기에 앞서, 본 포스트는 "How to terminate a C++ std::thread?" 를 번역한 글임을 밝힙니다. C++11부터, C++은 스레드를 자체적으로 지원하고자 std::thread를 도입하였다. 그 이후로, C++에서 새로운 스레드를 사용하는 것은 새로운 객체를 생성하는 것만큼이나 간단해졌다. 하지만, 동작하고 있는 C++ 스레드를 동적으로 종료하는 작업은 여전히 어렵다. 특히, joined 또는 detached 상태의 스레드라면 더더욱 그러하다. 이 주제에 관해 상당히 많은 논의가 오고 갔는데, 결론은 다음의 사이트에서 찾을 수 있다. “terminate 1 thread + forcefully (target thread doesn’t cooperate) + pure C++11 =..

IT/C++ 2020.01.18

[C++] Thread 정리하기

얼마 전에 C++로 구현해야 하는 작업이 있었습니다. 구현할 때 Thread를 이용해야해서, 라이브러리를 이용했는데, 해당 내용을 정리하고자 합니다. "A thread of execution is a sequence of instructions that can be executed concurrently with other such sequences in multithreading environments, while sharing a same address space." - cplusplus.com "스레드는 우선, thread를 이용하기 위해서는 헤더를 include 해야 합니다. 아래는 cplusplus.com에서 소개하는 예제입니다. #include #include void foo() { // do..

IT/C++ 2020.01.15