Serwis Edukacyjny
Nauczycieli
w I-LO w Tarnowie

obrazek

Materiały dla uczniów liceum

  Wyjście       Spis treści       Wstecz       Dalej  

Autor artykułu: mgr Jerzy Wałaszek
Uaktualniono: 31.07.2022

©2024 mgr Jerzy Wałaszek
I LO w Tarnowie

Interfejs SDL2:

SDL_DetachThread

SPIS TREŚCI

Rozdział jest tłumaczeniem oryginalnej instrukcji dla biblioteki SDL2.

SDL_DetachThread

Użyj tej funkcji, aby pozwolić wątkowi posprzątać po sobie bez ingerencji.

Składnia

void SDL_DetachThread(SDL_Thread* thread)

Parametry funkcji

thread wskaźnik SDL_Thread, który został zwrócony z wywołania SDL_CreateThread() uruchamiającego ten wątek.

Przykładowy kod

extern int TestThread(void *ptr);
SDL_Thread *thread = SDL_CreateThread(TestThread, "TestThread", (void *)NULL);
SDL_DetachThread(thread);  /* będzie pracował samodzielnie aż do zakończenia. */

Uwagi

Wątek może zostać "odłączony", co oznacza, iż nie powinien on pozostać aktywny, aż inny wątek wywoła na nim funkcję SDL_WaitThread(). Odłączenie wątku jest użyteczne dla wątków o długim czasie wykonania, z którymi nic nie musi być synchronizowane i którymi nie trzeba dalej zarządzać. Gdy odłączenie wątku zostanie wykonane, po prostu będzie on biegł swoim własnym torem aż do zakończenia działania w sposób naturalny.

Nie ma sposobu odzyskania kodu zwracanego przez kończący się wątek, jeśli został on odłączony. Jeśli będzie ci on potrzebny, to nie odłączaj wątku, lecz zamiast tego użyj funkcji SDL_WaitThread().

Gdy wątek zostanie odłączony, powinieneś założyć zwykle, że SDL_Thread nie jest bezpieczne przy ponownym odwołaniu, ponieważ staje się nieważne natychmiast, gdy odłączony wątek zakończy swoje działanie, zamiast pozostawania aż inny kod wywoła SDL_WaitThread(), aby ostatecznie posprzątać po wątku. Z tego powodu nie odłączaj tego samego wątku więcej niż jeden raz.

Jeśli wątek się już zakończył zanim został przekazany do SDL_DetachThread(), to przestanie on oczekiwać na wywołanie SDL_WaitThread() i posprząta po sobie natychmiast. Nie jest bezpiecznie odłączać wątek, który mógłby być używany z SDL_WaitThread().

Nie powinieneś wywoływać SDL_WaitThread() na wątku, który został odłączony. Używaj albo tamtej funkcji, albo tej tutaj, lecz nie obu, w przeciwnym razie nie wiadomo, co się stanie.

Do funkcji można bezpiecznie przesłać NULL, oznacza to brak operacji.

Wersja

Funkcja dostępna od SDL 2.0.2.

Powiązane funkcje


Na początek:  podrozdziału   strony 

Zespół Przedmiotowy
Chemii-Fizyki-Informatyki

w I Liceum Ogólnokształcącym
im. Kazimierza Brodzińskiego
w Tarnowie
ul. Piłsudskiego 4
©2024 mgr Jerzy Wałaszek

Materiały tylko do użytku dydaktycznego. Ich kopiowanie i powielanie jest dozwolone
pod warunkiem podania źródła oraz niepobierania za to pieniędzy.

Pytania proszę przesyłać na adres email: i-lo@eduinf.waw.pl

Serwis wykorzystuje pliki cookies. Jeśli nie chcesz ich otrzymywać, zablokuj je w swojej przeglądarce.

Informacje dodatkowe.