C에서 멀티스레딩을 사용한 선형 검색
여기에서는 멀티스레딩 개념을 적용하여 배열의 요소를 검색하는 방법을 살펴보겠습니다. 여기의 방법은 매우 간단합니다. 몇 개의 스레드를 생성한 다음 배열을 여러 부분으로 분할하겠습니다. 다른 스레드는 다른 부분을 검색합니다. 나중에 요소가 발견되면 플래그를 활성화하여 요소를 식별합니다.
예
#include <stdio.h> #include <pthread.h> #define MAX 16 #define THREAD_MAX 4 int array[MAX] = { 1, 5, 7, 10, 12, 14, 15, 18, 20, 22, 25, 27, 30, 64, 110, 220 }; int key = 18; int flag = 0; //flag to indicate that item is found in the array or not int current_thread = 0; void* ThreadSearch(void* args) { //This is linear search function. It will be running using all threads int num = current_thread++; for (int i = num * (MAX / 4); i < ((num + 1) * (MAX / 4)); i++){ if (array[i] == key) flag = 1; //set flag if key is found } } int main() { pthread_t thread[THREAD_MAX]; for (int i = 0; i < THREAD_MAX; i++) { //create multiple threads pthread_create(&thread[i], NULL, ThreadSearch, (void*)NULL); } for (int i = 0; i < THREAD_MAX; i++) { pthread_join(thread[i], NULL); //wait untill all of the threads are completed } if (flag == 1) printf("Key element is found</p><p>"); else printf("Key element is not present</p><p>"); }
출력
$ gcc 1249.Thread_search.cpp -lpthread $ ./a.out Key element is found
위 내용은 C에서 멀티스레딩을 사용한 선형 검색의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











typedef struct는 C 언어에서 구조 사용을 단순화하기 위해 구조 유형 별칭을 만드는 데 사용됩니다. 구조 별칭을 지정하여 기존 구조에 새 데이터 유형의 별칭을 지정합니다. 향상된 가독성, 코드 재사용 및 유형 확인 등의 이점이 있습니다. 참고: 별칭을 사용하기 전에 구조를 정의해야 합니다. 별칭은 프로그램에서 고유해야 하며 선언된 범위 내에서만 유효해야 합니다.

real은 C 언어에서 배정밀도 부동 소수점 숫자를 나타내는 데 사용되는 데이터 유형입니다. 8바이트를 차지하고 소수점 이하 약 15자리의 정밀도를 가지며 범위는 [-1.7976931348623157e+308, 1.7976931348623157e+308]입니다.

C 언어에서 scanf 함수 오류를 처리하는 방법은 다음과 같습니다. 1. 형식 문자열을 확인합니다. 3. 반환 값을 확인합니다. 4. 오류 처리 기능을 사용합니다. 사용자 정의 오류가 처리됩니다. 오류를 방지하려면 올바른 데이터 유형을 사용하고, 입력의 유효성을 주의 깊게 확인하고, 반환 값을 확인하고, 프로그램의 잠재적인 오류를 처리하십시오.

C 언어에는 지수 연산을 구현하는 두 가지 방법이 있습니다. pow() 함수를 사용하여 첫 번째 매개변수의 두 번째 매개변수의 거듭제곱을 계산합니다. 재귀적으로 또는 반복적으로 구현할 수 있는 사용자 정의 검정력 함수를 정의합니다. 재귀적 방법은 검정력이 0이 될 때까지 계속해서 두 배로 증가합니다. 반복 방법은 루프를 사용하여 밑수를 하나씩 곱합니다.

ElemType은 배열이나 구조의 요소 유형을 나타내는 C 언어 데이터 유형입니다. 배열 요소 유형 선언, 구조 멤버 유형 정의, 일반 함수 및 매크로에 사용됩니다. ElemType은 예약어가 아니며 다른 이름으로 대체될 수 있습니다.

뮤텍스는 C++에서 다중 스레드 공유 리소스를 처리하는 데 사용됩니다. std::mutex를 통해 뮤텍스를 만듭니다. mtx.lock()을 사용하여 뮤텍스를 획득하고 공유 리소스에 대한 독점 액세스를 제공합니다. 뮤텍스를 해제하려면 mtx.unlock()을 사용하세요.

inline 키워드는 C 언어 함수를 인라인 함수로 선언하는 데 사용됩니다. 함수 코드를 호출 지점에 직접 삽입함으로써 함수 호출 오버헤드를 제거하고 실행 효율성을 향상시킵니다. 그러나 인라인 함수는 코드가 팽창하고 디버깅이 어려울 수 있으므로 함수 본문이 작고 자주 호출되며 비용이 많이 드는 시나리오에 적합합니다.

scanfs 함수는 C 언어에서 표준 입력에서 형식화된 데이터를 읽고 읽은 데이터를 지정된 변수에 저장하는 데 사용됩니다. format 매개변수에 지정된 형식 지정자(예: %d, %f)에 따라 데이터를 읽고 ... 매개변수에 지정된 변수 주소에 데이터를 저장합니다. scanfs 함수는 성공적으로 읽은 데이터 항목 수를 반환하고, 읽기에 실패하면 -1을 반환합니다.
