boost::thread 다중 스레드

1735 단어
1. thread 라이브러리 소개
thread 라이브러리는chrono 라이브러리에 의존합니다.chrono 라이브러리는 C++11에 새로 추가된 편리한 날짜 시간 조작을 위한 표준 라이브러리입니다.thread 라이브러리는 chrono 라이브러리에서 제공하는 시간 개념으로 수면, 대기 작업을 수행해야 하기 때문에thread 라이브러리를 컴파일하려면 먼저 chrono 라이브러리를 컴파일해야 합니다.thread는 헤더 파일에 포함된 이름공간 boost에 있습니다.
#define BOOST_THREAD_BERSION 4 //    
#include 
using namespace boost;

C++ 표준 이외에thread 라이브러리는 대량의 확장 기능을 제공하지만 호환성을 고려하여 이러한 기능은 다른 헤더 파일에 포함됩니다.
#include 
#include 
#include 
#include 
#include 
#include 

2.A simple example
#include 
#include 

void hello()
{
      std::cout<

이 예에서main 함수는 하나의 라인입니다. 새 라인은 "Hello multi-thread!"를 출력하는 데 사용됩니다.boost::thread::join () 을 동시에 호출해서 라인이 끝날 때까지 기다립니다.
3. 상호 배척체
다중 루틴 프로그램은 서로 다른 루틴이 공유 구역에 동시에 접근하는 것을 피해야 한다.여러 라인의 다중 공유 영역이 동시에 접근하는 것을 피하기 위해 호환체 (mutex,mutual extension의 줄임말) 가 생겼습니다. 호환체는 한 라인만 공유 영역에 접근할 수 있습니다.한 라인이 공유 구역에 접근하려고 할 때, 우선 (lock) 호환체를 잠가야 한다. 호환체가 잠기면 다른 라인이 공유 구역에 다시 접근하려고 할 때, 현재 라인이 끝날 때까지 기다렸다가 호환체를 잠그는 수밖에 없다.
#include 
#include 
#include 
#include 

boost::mutex io_mutex;

void count(int id)
{
      for(int i = 0;i < 10; i++)
      {
            boost::mutex::scoped_lock lock(io_mutex);
            std::cout<

boost::bind () 를 어떻게 사용하는지 모르겠습니다. 제 글을 참고하십시오. boost::bind 함수 귀속기 한 문입니다.
다선정의 내용이 너무 많으니 내가 천천히 쓸 때까지 기다려라.미완성 미속.

좋은 웹페이지 즐겨찾기