Notice
Recent Posts
Recent Comments
Link
취미생활
[C++] 람다 함수로 std::thread 돌리기 본문
개발 도중 처리 시간 때문에 쓰레드를 추가로 돌릴 필요가 생겼다.
나는 Qt, C++17 를 사용하기 때문에 QThread, pthread std::thread 등..
여러가지 선택지가 있었고 기존에는 주로 QThread를 통해 함수를 실행했었다.
하지만,
해당 프로젝트에서 QThread 를 상속받아 클래스를 새로 만들기에는 품이 너무 많이 들어가는 것 같았고
이번에는 std::thread를 사용해보기로 했다.
#include <iostream>
#include <thread>
int main() {
// Create a lambda function that prints "Hello, World!" to the console
auto hello = []() {
std::cout << "Hello, World!" << std::endl;
};
// Create a std::thread object and pass the lambda function to its constructor
std::thread t(hello);
// Wait for the thread to finish executing
t.join();
//do something!
return 0;
}
이 코드는 chatGPT를 통해 만든 예시 코드다.
기존에 내가 코딩하던 건 회사 꺼라서 못가져왔고 예시를 준비했다.
내용은 정말 간단한데,
hello 라고 하는 함수 포인터에 람다 함수를 입력시킨 뒤,
std::thread t 에서 이를 실행하는 코드다.
여기서 코드를 진화시킨다면 아마 std::vector 로 람다 함수 쓰레드를 여러개 사용하는 방식을 사용할 수도 있을 거고
아니면 쓰레드 돌려놓고 다른 내용을 처리할 수도 있을 것이다.
나 같은 경우에는 주석처리한 do something 부분에서 user 입력을 대기했기 때문에 유휴시간이 생겨 저런 식으로 코딩을 진행했다.
결과는 음...
아주 조금 빨라진 것 같은데
크게 의미는 없....
'컴퓨터 > C++' 카테고리의 다른 글
[C++11 Qt] QTableView 로 틀 고정 기능 구현하기 (0) | 2023.04.03 |
---|---|
[C++] Map 과 함수 포인터를 이용한 함수 호출 아이디어 (2) | 2022.11.16 |
[C++11] std::function 템플릿으로 함수 포인터 대체하기 (0) | 2022.11.16 |
[C++11] 중괄호로 STL 자료구조 초기화 간편하게 하기 (0) | 2022.11.16 |
[C++] 구조체 비트 필드로 비트 단위 변수 사용하기 (0) | 2022.09.05 |
Comments