본문 바로가기
C.C++/코드

asio io_service 한방이해

by 겜게준 2018. 4. 15.

#include <iostream>

#include <asio.hpp>

#include <memory>

#include <vector>

#include <thread>


asio::io_service io_svc;

int a = 0;


void WorkerThread(){

std::cout << ++a << ".\n";

io_svc.run();

std::cout << "End.\n";

}


int main(void)

{

std::shared_ptr<asio::io_service::work> worker(new asio::io_service::work(io_svc));

std::vector<std::thread> threadGroup;

for(int i = 0; i < 5; ++i)

{

threadGroup.emplace_back(&WorkerThread);

}


std::cin.get();


io_svc.stop();


std::for_each(threadGroup.begin(), threadGroup.end(), [&threadGroup](std::thread& thread){ thread. join();});


system("pause");

return 0;

}


------ 이하 설명 -----

'C.C++ > 코드' 카테고리의 다른 글

thread_group  (1) 2018.04.24
asio 타이머 핸들링 예제  (2) 2018.04.17
예외처리가 안되었을 경우에 terminate 에서 abort 말고 커스텀 함수 호출하는 법  (0) 2017.12.10
에러값 리턴  (0) 2017.05.23
assertion  (0) 2017.05.18

댓글