pthread 종료 예제

따라서 이 함수는 이 함수를 호출하는 스레드에서 반환되는 하나의 인수만 허용합니다. 이 반환 값은 이 스레드가 종료되기를 기다리는 상위 스레드에서 액세스합니다. pthread_exit() 함수에 의해 종료된 스레드의 반환 값은 위에서 설명한 pthread_join의 두 번째 인수에서 액세스할 수 있습니다. 여기서 초점은 pthread_exit()에 있습니다. 프로토타입은 다음과 같습니다: 스레드가 종료되면 프로세스 공유 리소스(예: 뮤텍스, 조건 변수, 세마포 및 파일 설명자)가 해제되지 않고 atexit(3)를 사용하여 등록된 함수가 호출되지 않습니다. 이 시리즈의 파트 II에서 설명한 것과 동일한 예제를 취하는 경우 : 태그: pthread_cancel 예제, pthread_create 예제, pthread_exit 예제, pthread_join 예제 pthread_exit() 동작은 취소 정리 처리기에서 호출된 경우 정의되지 않습니다. 또는 pthread_exit()에 대한 암시적 또는 명시적 호출의 결과로 호출된 소멸자 함수입니다. 스레드에서 제공하는 기능을 최대한 활용하려면 표준화된 프로그래밍 인터페이스가 필요했습니다. UNIX 시스템의 경우 이 인터페이스는 IEEE POSIX 1003.1c 표준(1995)에 의해 지정되었습니다. 이 표준을 준수하는 구현을 POSIX 스레드 또는 Pthread라고 합니다. 이제 대부분의 하드웨어 공급업체는 독점 스레드 외에 Pthread를 제공합니다. 마지막 스레드가 종료된 후 프로세스가 종료 상태가 0으로 종료됩니다.

동작은 구현이 exit()라고 하는 것과 마찬가지로 스레드 종료 시 인수가 0입니다. 스레드가 종료된 후 스레드의 로컬(자동) 변수에 대한 액세스 결과는 정의되지 않습니다. 따라서 종료 스레드의 로컬 변수에 대 한 참조는 pthread_exit() value_ptr 매개 변수 값에 대 한 사용 하지 않아야 합니다. 위에서 설명한 함수를 사용하는 경우예를 들어 보겠습니다: 프로세스의 마지막 스레드가 종료된 후 종료(3)를 0의 종료 상태로 호출하여 프로세스가 종료됩니다. 따라서 프로세스 공유 리소스가 해제되고 atexit(3)를 사용하여 등록된 함수가 호출됩니다. pthread 라이브러리를 사용하는 더 많은 예제는 여기에서 찾을 수 있습니다. 스레드를 올바르게 사용하는 방법을 아는 것은 모든 컴퓨터 과학 및 엔지니어링 학생 레퍼토리의 일부가 되어야 합니다. 이 자습서는 POSIX(이식 가능한 운영 체제 인터페이스) 스레드 또는 pthreads를 사용하여 다중 스레드 프로그래밍에 익숙해지도록 돕기 위한 시도입니다. 이 자습서에서는 pthread 라이브러리에서 정의한 다양한 도구를 설명하고, 이를 사용하는 방법을 보여 주며, 실제 프로그래밍 문제를 해결하기 위해 이러한 도구를 사용하는 예제를 제공합니다. 잘 작성하고 잘 설명했다. (몇 가지 오타 수정이 필요하지만) 그것은 너무 다음에 좋은 예가, 기본 프로그램에서 다시 pthread_exit 호출을 추가하지만 PrintHello 루틴에서 제거합니다.

또한 두 번째 printf 호출 직전에 기본 루틴에 절전 절절 호출을 추가하고 PrintHello 루틴에서 제거합니다(이제 주 스레드가 마지막으로 완료됨). hello 실행 을 다시 컴파일하고 실행합니다. pthread_exit()에 대한 암시적 호출은 main()이 처음 호출된 스레드가 아닌 스레드가 해당 스레드를 만드는 데 사용된 시작 루틴에서 반환될 때 이루어집니다. 함수의 반환 값은 스레드의 종료 상태로 작동합니다. 기본 프로그램의 끝에 pthread_exit를 사용 해야 합니다.

Posted in Uncategorized