FANDOM


Jednym z elementów implementacji Lua jest jego wielowątkowość. Wielowątkowość to system umożliwiający wykonywanie kilku czynności w tym samym momencie. W prawdzie nie jest dokładnie tak, ponieważ procedury rozbijane są na najmniejsze operacje, po czym procesor wykonuje to proste operacje na zmianę(raz fragment jednego wątku, raz fragment drugiego itd.). Implementacja języka lua dopuszcza pseudowątki, które tak naprawdę wykonują tą samą robotę i są rozpowszechnione wszędzie, ale w odróżnieniu od wątków procedury zawarte w wątkach dzieli parser Lua(czyli program, który czyta kod i wykonuje go).

Jeżeli miałeś do czynienia ze skryptami w ROBLOX(a skoro czytasz ten artykuł to zakładam, że miałeś) to z pseudowątkami z pewnością miałeś do czynienia, ale nie wiedziałeś o ich istnieniu. Z pewnością korzystałeś z eventów, więc pewnie zauważyłeś, że ROBLOX zdarzenia wykonuje inaczej niż konwencjonalny kod. Otóż normalny kod zawsze będzie się wykonywał od góry do dołu. Jeżeli (powiedzmy) w środku kodu wstawiłeś event, to kod ten będzie wykonywany po kolei i gdy napotka na zdarzenie, to utworzy pseudowątek, wewnątrz którego znajduje się pętla nieskończona, która nadzoruje czy doszło do zdarzenia i jeżeli tak, to wykonuje funkcję podaną w argumencie funkcji connect() - tak właśnie działa zdarzenie.

Jednak oprócz zdarzeń w naszym kodzie może zajść potrzeba stworzenia nowego wątku. W tym celu wystarczy napisać pewną funkcję i wywołać funkcję spawn(funkcja), gdzie funkcja jest tą wcześniej utworzoną procedurą.

Ad blocker interference detected!


Wikia is a free-to-use site that makes money from advertising. We have a modified experience for viewers using ad blockers

Wikia is not accessible if you’ve made further modifications. Remove the custom ad blocker rule(s) and the page will load as expected.

Więcej z Fandomu

Losowa wiki