Wątek POSIX:
Na platformach Linux języki C i C ++ PTHREAD API dla wszystkich rodzajów funkcji związanych z wątkiem. Jest również znany jako wątek POSIX, który pozwala użytkownikom tworzyć wiele wątków dla jednoczesnych procesów. Najlepiej go używać w systemach lub procesorach wielordzeniowych do wdrażania wątków na jądrze, aby osiągnąć system.
Realizacja:
Konieczne jest włączenie tego pthread.H plik nagłówka w skrypcie początkowo. Pomoże to w korzystaniu z funkcji biblioteki pthreads. Aby wykonać plik C, następujące polecenia
$ cc -pthread plik.C
LUB
$ cc -lpthread plik.C
Funkcje zdefiniowane w bibliotece PTHREADS mogą obejmować:
pthread_create:
Służy do tworzenia nowego wątku
Parametry pthread_create:
Ma następujące parametry:
nitka: Działa to jako wskaźnik do wartości całkowitej. Zwraca identyfikator wątku utworzonego wątku.
Atrybuty: Ten parametr działa jako wskaźnik do struktury. Służy do definiowania atrybutów wątku, który może być zasadą planowania i adresu stosu itp.
start_routine: Ten parametr jest wskaźnikiem podprogramu zaimplementowanego przez wątek.
argument: Ten parametr jest wskaźnikiem do zniesienia z różnymi argumentami niż funkcja wstępnie zdefiniowana na początku argumentu
Składnia:
>> int pthread_create
(pthread_t * wątek, const pthread_attributes_t * attr, void * ( * start_routine) (void *), void * argument);
pthread_exit:
Służy do zakończenia lub zakończenia wątku
Parametry pthread_exit:
Metoda zastosowana na końcu metody/procesu akceptuje retval parametrów, który jest obowiązkowym wskaźnikiem liczby całkowitej. Przechowuje status wątku, tak że wątek kończy się. To musi być zmienna globalna. Umożliwi to następny wątek w wierszu dołączyć do wątku, jeśli jest dostępny.
Składnia:
>> void pthread_exit (void *retval);
pthread_join:
Jest to funkcja używana w momencie oczekiwania na zakończenie wątku.
Parametry dla pthread_join:
Używany tutaj parametr to:
Thread_id: Jest to identyfikator wątku, na który wątek w linii czeka.
Thread_return: Jest to parametr, który działa jako wskaźnik do konkretnej lokalizacji, w której zdefiniowaliśmy status wyjścia.
Składnia:
>> int pthread_join (pthread_t Thread_Identification, void ** Thread_return);
pthread_self:
Jest to metoda stosowana do uzyskania obecnie identyfikatora wątku.
Składnia:
>> pthread_t pthread_self (void);
pthread_equal:
Ta metoda służy do porównania w przypadku, gdy dwa wątki są równoważne lub nie. Jeśli dwa wątki są podobne, funkcja zwróci wartość inną niż zero w odpowiedzi.
Składnia:
>> int pthread_equal (pthread_t Thread1, pthread_t Thread2);
pthread_Cancel:
Ta metoda służy do wysyłania żądania do anulowania
Parametr dla pthread_cancel:
Zastosowany parametr jest obowiązkowy do wprowadzenia w celu anulowania żądania.
Składnia:
>> int pthread_cancel (pthread_t ThreadName);
pthread_detach:
Jest to metoda używana do oddzielenia wątku. Nie potrzebuje żadnego wątku, aby przyłączyć się do zakończenia. Wszystkie zasoby działające w wątku są uwalniane, gdy tylko wątek zostanie odłączony.
Parametr pthread_detachr:
Jest to parametr, który akceptuje obowiązkowy identyfikator wątków parametrów. Należy je odłączyć.
Składnia:
>> int pthread_detach (pthread_t Wątek);
Przykładowy kod:
Oto przykładowy kod pokazujący implementację wyżej opisanej funkcji. Użyliśmy kompilatora GCC do opracowania tych funkcji.
// program pokazujący funkcje wątku
#włączać
#włączać
#włączać
// wywoływanie wątku POSIX, niezbędne w systemach UNIX/LINUX
pthread_t tid [2];
void *funkcja (void *arg)
niepodpisany długi i = 0;
pthread_t id = pthread_self ();
if (pthread_equal (id, tid [0]))
// Warunek dla wątków jest równy
printf („\ n Pierwszy wątek jest przetwarzany \ n”);
w przeciwnym razie
printf („\ n Drugi wątek jest przetwarzany \ n”);
// wątki przetwarzane.
dla (i = 0; i<(0x255);i++);
powrót NULL;
int Main (void)
int i = 0;
w terrorze;
// Tworzenie nowego wątku
podczas gdy ja < 2)
error = pthread_create (& (tid [i]), null i funkcja, null);
if (błąd != 0)
printf („\ n nie był w stanie utworzyć wątku: [%s]”, strerror (błąd));
w przeciwnym razie
printf („\ n Wątek został pomyślnie utworzony \ n”);
// wątek utworzony pomyślnie
i ++;
sen (5);
powrót 0;
Kod jest napisany w edytorze tekstu; Możesz użyć dowolnego edytora w oparciu o swój wybór. Następnie zapisz go w swojej ulubionej lokalizacji.
Plik jest zapisywany w systemie komputerowym, a następnie dostęp do. Plik zapisany przez USA został nazwany testem.C. Aby uzyskać do niego dostęp, wpisz następujące polecenie w oknie terminalu:
Test $ sudo gcc.c -LpThread
Następnie, aby wykonać wyjście, wpisz następujące polecenie:
$ ./A.na zewnątrz
Oczekiwany wynik:
Dane wyjściowe, które otrzymaliśmy w odpowiedzi na poprzedni kod, pokazano poniżej:
Wniosek:
Samouczek obejmował podstawowy proces tworzenia wątków i omówił wszystkie powszechnie stosowane metody w jego tworzeniu. Wątek jest przykładem procesu. Następnie przechodziliśmy użytkowników przez słynne parametry używane przez każdy proces wraz z składniami, aby mogli korzystać z nich w programach komputerowych. Tutaj udostępniliśmy również przykładowy kod jako próbkę, aby lepiej zrozumieć pomysł utworzenia programu C w POSIX. Kompilator, którego użyliśmy, był GCC w systemie Linux. Użytkownicy mogą również zdecydować się na dowolny inny kompilator na podstawie ich preferencji.