pthread_equal 예제

  • 0

pthread_equal 예제

Category : Senza categoria

위에서 설명한 일반적인 사례의 예로는 마스터 스레드가 처리할 작업을 가져옵니다. 이제 개별 작업자 스레드가 연결된 목록을 구문 분석하고 할당된 작업을 추출합니다. pthread_t는 구조가 될 수 있으므로 == 연산자 사용을 비교해서는 안 됩니다. POSIX는 2 pthread_t 즉, 잘 작성하고 잘 설명하는 함수 pthread_equal()을 제공합니다. (비록 몇 가지 오타 수정필요) 그것은 너무 좋은 예제를 가지고이 문서에서 우리는 스레드가 생성되고 식별되는 방법에 초점을 맞출 것이다. 또한 기본 스레드 프로그래밍을 수행하는 방법을 설명하는 작업 C 프로그램 예제도 제공합니다. 리눅스 스레드 시리즈: 부품 1, 부품 2 (이 문서), 부품 3. 다음은 위에서 설명한 세 가지 함수를 모두 사용하려고 시도한 예제 코드입니다. 구문:- int pthread_equal (pthread_t1, pthread_t t2); 또한 명확성을 위해 올바르게 빌드하기 위해 주어진 예제에 대해 라이브러리 -lpthread에 대해 링크하도록 추가해야 합니다. 스레드 종료에 대한 예제에서는 main() pthread_equal() 함수에 다음 코드 줄이 두 스레드가 동일한지 여부를 확인하는 데 사용됩니다. 그러면 0 또는 0이 아닌 값을 반환합니다.

동일한 스레드의 경우 0이 아닌 스레드를 반환하고 그렇지 않으면 0을 반환합니다. 이 함수의 구문은 아래와 같습니다 – 구현구조로 스레드 ID를 정의하도록 선택할 수 있습니다. 이를 통해 int를 사용하는 데 있어 유연성과 견고성이 추가로 허용됩니다. 예를 들어 스레드 ID에는 “매달려 있는 ID”(분리된 스레드 ID의 복사본)를 검색할 수 있는 시퀀스 번호가 포함될 수 있습니다. C 언어는 구조체 형식에 대한 비교를 지원하지 않으므로 스레드 ID를 비교하기 위해 pthread_equal() 함수가 제공됩니다. 이제 pthread_equal() 동작을 살펴보겠습니다. 첫 번째 경우 자체 스레드를 확인하여 결과를 확인합니다. 위에서 설명한 함수를 사용하는 경우 예를 들어 보겠습니다 : pthread_equal()은 tid1 및 tid2가 같을 때 비영값을 반환하고 그렇지 않으면 0이 반환됩니다. tid1 또는 tid2가 잘못된 스레드 식별 번호인 경우 결과를 예측할 수 없습니다. pthread_equal() = 같거나 그렇지 않은 두 스레드를 비교합니다. 이 함수는 두 스레드 식별자를 비교합니다. `0`과 0이 아닌 값을 반환합니다.

같으면 0이 아닌 값을 반환합니다.else 반환 0입니다. 이 시리즈의 Part-II에서 설명한 것과 동일한 예제를 취하는 경우 : 스레드 취소의 한 예는 사용자가 실행 중인 응용 프로그램을 닫거나 종료하도록 요청하는 경우와 같이 비동기적으로 생성된 취소 조건입니다. 또 다른 예는 여러 스레드에서 수행하는 작업을 완료하는 것입니다. 스레드 중 하나는 궁극적으로 작업을 완료하고 다른 스레드는 계속 작동할 수 있습니다. 실행 중인 스레드는 해당 시점에서 아무 목적도 제공하지 않으므로 이러한 스레드는 취소해야 합니다. DEVC ++ 컴파일러에서 위의 코드를 실행하려고 하면 다음과 같은 오류가 발생합니다… 1)- [링커 오류] `_imp__pthread_self`에 대한 정의되지 않은 참조 2)- [링커 오류] `_imp__pthread_equal`에 대한 정의되지 않은 참조 3)- [링커 오류] `_imp__pthread_create` 4)-ld 반환 된 1 종료 상태 지금, 하나는 경우에 대해 물어볼 것입니다. 위의 두 함수가 필요한 경우. 링크 목록에 다른 스레드에 대한 데이터가 포함된 경우가 있다고 가정합니다.

목록의 모든 노드에는 스레드 ID와 해당 데이터가 포함됩니다. 이제 스레드가 연결된 목록에서 데이터를 가져오려고 할 때마다 먼저 `pthread_self()`를 호출하여 자체 ID를 가져온 다음 모든 노드에서 `pthread_equal()`를 호출하여 노드에 데이터가 포함되어 있는지 확인합니다. 다음 예제에서는 mywindow에 대한 참조가 작동하는 방식을 보여 주며 있습니다. 전처리기는 mywindow에 대한 참조를 _mywindow() 프로시저의 호출로 변환합니다. pthread_key_create(3C)를 사용하여 프로세스에서 스레드별 데이터를 식별하는 데 사용되는 키를 할당합니다.