pthread_self 예제

pthread 라이브러리를 사용하는 더 많은 예제는 여기에서 찾을 수 있습니다. 스레드를 올바르게 사용하는 방법을 아는 것은 모든 컴퓨터 과학 및 엔지니어링 학생 레퍼토리의 일부가 되어야 합니다. 이 자습서는 POSIX(이식 가능한 운영 체제 인터페이스) 스레드 또는 pthreads를 사용하여 다중 스레드 프로그래밍에 익숙해지도록 돕기 위한 시도입니다. 이 자습서에서는 pthread 라이브러리에서 정의한 다양한 도구를 설명하고, 이를 사용하는 방법을 보여 주며, 실제 프로그래밍 문제를 해결하기 위해 이러한 도구를 사용하는 예제를 제공합니다. 참고. 언제든지 스레드는 조인 가능하거나 분리할 수 있습니다(기본 상태는 조인 가능). 메모리 리소스를 확보하려면 다른 스레드(pthread_join 사용)에서 조인 가능한 스레드를 수확하거나 죽여야 합니다. 분리된 스레드는 다른 스레드에 의해 수확되거나 종료될 수 없으며 리소스가 종료시 자동으로 수확됩니다. 따라서 스레드가 자체적으로 동기화해야 하지 않는 한 pthread_detach(pthread_self()를 호출하는 것이 좋습니다. 대신 pthread_join. 호출 스레드에 대 한 pthread_t 개체로 스레드 id를 반환 합니다.

주요 기능도 스레드이므로 pthread_self() form main 함수도 호출할 수 있습니다. pthread_self()는 실패하지 않으며 항상 스레드 ID를 반환합니다. pthread_self()를 사용하여 현재 스레드 ID 즉 스레드가 매우 유용할 수 있는 한 영역은 사용자 인터페이스 프로그램에 있습니다. 이러한 프로그램은 일반적으로 사용자 입력을 읽고 처리하고 처리 결과를 표시하는 루프를 중심으로 합니다. 처리 부분은 경우에 따라 완료하는 데 시간이 걸릴 수 있으며 사용자는 이 작업 중에 기다려야 합니다. 사용자 입력을 읽을 다른 스레드를 사용하는 동안 이러한 긴 작업을 별도의 스레드에 배치하면 프로그램의 응답성이 향상될 수 있습니다. 사용자가 중간에 작업을 취소할 수 있습니다. 올바르게 구현된 경우 스레드는 프로세스에 비해 몇 가지 장점이 있습니다. 표준 포크()에 비해 스레드는 오버헤드가 훨씬 적습니다.

스레드에서 제공하는 기능을 최대한 활용하려면 표준화된 프로그래밍 인터페이스가 필요했습니다. UNIX 시스템의 경우 이 인터페이스는 IEEE POSIX 1003.1c 표준(1995)에 의해 지정되었습니다. 이 표준을 준수하는 구현을 POSIX 스레드 또는 Pthread라고 합니다. 이제 대부분의 하드웨어 공급업체는 독점 스레드 외에 Pthread를 제공합니다. 반면에 그룹의 스레드는 모두 동일한 메모리 공간을 사용하기 때문에 그 중 하나가 메모리의 내용을 손상시키면 다른 스레드도 손상될 수 있습니다. 프로세스의 경우 운영 체제는 일반적으로 서로 프로세스를 보호하므로 자체 메모리 공간이 손상되면 다른 프로세스가 손상되지 않습니다. 위의 코드에 대해 실행 을 다시 컴파일하고 실행합니다. 당신이 기대했던 오투푸트인가요? 스레드 아이디는 프로세스 내에서만 고유하게 보장됩니다. 스레드 ID는 종료된 스레드가 조인되었거나 분리된 스레드가 종료된 후 다시 사용할 수 있습니다. 위의 간단한 스레드 프로그램을 이해합니다. 유용한 것은 아니지만 스레드의 작동 방식을 이해하는 데 도움이 됩니다. 우리가 프로그램이 무엇을하는지 단계별로 살펴 보자.

hello 실행 을 다시 컴파일하고 실행합니다. 새 ouput은 스레드 1과 유사해야 합니다. 새 스레드 (4)를 만들었습니다 … 새 스레드 4에서 안녕하세요 – 11 Linux 컴퓨터에서 코드를 실행하는 경우 새 스레드의 식별자는 4가 아닌 매우 큰 정수가 됩니다 (여기에 표시된 대로). 스레드는 공통 주소 공간을 공유하므로 여러 프로세스의 많은 비효율성을 피할 수 있습니다. 스레드는 자체 스택을 가지며 지정된 코드 조각을 실행하는 세미 프로세스입니다. 실제 프로세스와 달리 스레드는 일반적으로 다른 스레드와 메모리를 공유합니다(프로세스의 경우 일반적으로 각 스레드에 대해 서로 다른 메모리 영역이 있음). 스레드 그룹은 모두 동일한 프로세스 내에서 실행되는 스레드 집합입니다.

By | 2019-08-02T20:57:22+00:00 août 2nd, 2019|Non classé|Commentaires fermés sur pthread_self 예제

About the Author: