Heim > Backend-Entwicklung > C++ > Lineare Suche mit Multithreading in C

Lineare Suche mit Multithreading in C

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
Freigeben: 2023-09-06 17:13:06
nach vorne
930 Leute haben es durchsucht

Lineare Suche mit Multithreading in C

Hier erfahren Sie, wie Sie das Multithreading-Konzept anwenden, um nach einem Element in einem Array zu suchen. Die Methode hier ist sehr einfach. Wir werden einige Threads erstellen und dann das Array in verschiedene Teile aufteilen. Verschiedene Threads suchen in unterschiedlichen Teilen. Wenn das Element später gefunden wird, aktivieren Sie Flags, um das Element zu identifizieren.

Beispiel

#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>");
}
Nach dem Login kopieren

Ausgabe

$ gcc 1249.Thread_search.cpp -lpthread
$ ./a.out
Key element is found
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonLineare Suche mit Multithreading in C. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:tutorialspoint.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage