c++ 스레드 예제

함수 포인터를 사용 하 여 스레드를 시작 다음 코드 조각이 수행 하는 방법을 보여 줍니다이 자습서는 C ++11 스레드를 시작 하 고 표준의 완전 한 참조 가 될 수 없습니다. 참고: std:::thread 지원으로 프로그램을 컴파일하려면 멀티스레딩 프로그래밍을 사용하여 공유 리소스에 대한 동시 액세스에 문제가 발생합니다. 동일한 리소스에 대한 동시 액세스는 프로그램에서 많은 오류와 혼란을 야기할 수 있습니다. 원래 C++ 표준은 단일 스레드 프로그래밍만 지원했습니다. 새로운 C++ 표준(C++11 또는 C++0x라고 함)은 2011년에 발표되었습니다. C++11에서 새 스레드 라이브러리가 도입됩니다. 다음 코드는 각 스레드가 std::cout에 독점적으로 액세스하도록 중요한 섹션을 만드는 방법을 보여 주며, 클래스 뮤텍스는 공유 데이터를 동시 액세스로부터 보호하는 데 사용되는 동기화 기본 정보입니다. 뮤텍스는 잠그고 잠금을 해제할 수 있습니다. 뮤텍스가 잠기면 현재 스레드는 잠금이 해제되지 않을 때까지 뮤텍스를 소유합니다.

즉, 뮤텍스를 소유한 스레드가 잠금을 해제할 때까지 다른 스레드는 뮤텍스로 둘러싸인 코드 블록에서 명령을 실행할 수 없습니다. 뮤텍스를 사용하려면 프로그램에 mutex 헤더를 포함시켜야 합니다: 모든 스레드는 실행을 완료한 후 고유 식별자를 인쇄합니다: 다른 스레드에서 동시에 실행해서는 안 되는 일부 코드 줄을 실행해야 하는 모든 스레드 그의 친구에게 이야기하는 전화), 먼저 뮤텍스 (콜 박스의 문 손잡이를 클러치)에 잠금을 취득해야합니다. 그런 다음에야 스레드가 해당 코드 줄을 실행할 수 있습니다(전화 통화). 여기서 pthread_create는 새 스레드를 만들고 실행 가능하게 만듭니다. 이 루틴은 코드 내의 어느 곳에서나 여러 번 호출할 수 있습니다. 클래스 스레드는 실행의 단일 스레드를 나타냅니다 – 여기에 매개 변수의 설명입니다. 스레드를 사용하면 여러 함수를 동시에 실행할 수 있습니다. C++11에서 스레드를 만들고 실행하는 것은 C++ 소스에 스레드 헤더를 추가하는 것만큼 간단합니다. 스레드가있는 간단한 HelloWorld 프로그램을 만드는 방법을 보자 : 매개 변수가있는 개체가있는 스레드를 초기화하려면 해당 매개 변수 목록을 연산자의 오버로드 버전에 추가해야합니다 (이 함수는 모든 함수 후에만 반환합니다. 스레드가 종료됩니다.

그것은 자식 스레드가 실행을 완료하지 않을 때까지 주 스레드가 대기한다는 것을 의미합니다 : 2010에서 듀얼 코어 MacBook Pro에서 마지막 예제 코드를 실행한 결과는 다음 표에 표시됩니다: std::thread는 C+의 단일 스레드를 나타내는 스레드 클래스입니다. +.

Die Kommentarfunktion ist geschlossen.