목차
출력
백엔드 개발 C++ C에서 멀티스레딩을 사용한 선형 검색

C에서 멀티스레딩을 사용한 선형 검색

Sep 06, 2023 pm 05:13 PM
c 언어 멀티스레딩 선형 검색

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

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

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

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

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

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

C 언어에서 typedef 구조체 사용법 C 언어에서 typedef 구조체 사용법 May 09, 2024 am 10:15 AM

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

C 언어에서 Real은 무엇을 의미합니까? C 언어에서 Real은 무엇을 의미합니까? May 09, 2024 pm 12:06 PM

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

C 언어에서 scanf 오류가 발생하면 어떻게 해야 할까요? C 언어에서 scanf 오류가 발생하면 어떻게 해야 할까요? May 09, 2024 am 11:39 AM

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

C 언어로 거듭제곱 함수를 구현하는 방법 C 언어로 거듭제곱 함수를 구현하는 방법 May 09, 2024 pm 11:33 PM

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

C 언어에서 ElemType을 사용하는 방법 C 언어에서 ElemType을 사용하는 방법 May 09, 2024 pm 12:03 PM

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

C++의 멀티스레딩에서 공유 리소스를 처리하는 방법은 무엇입니까? C++의 멀티스레딩에서 공유 리소스를 처리하는 방법은 무엇입니까? Jun 03, 2024 am 10:28 AM

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

C 언어에서 인라인을 사용하는 방법 C 언어에서 인라인을 사용하는 방법 May 09, 2024 am 10:12 AM

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

C 언어에서 scanfs의 역할 C 언어에서 scanfs의 역할 May 09, 2024 am 11:30 AM

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

See all articles