Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

UoKit.com Форумы _ UO Pilot _ Использование потоков при кодинге на lua

Автор: NeTLeaDeR 17.11.2019, 4:05

Всем привет.
Возможно ли использовать потоки в UOPilot, при использовании lua в качестве скриптового языка? Или может есть какие-нибудь альтернативы?

Мне нужно запустить код, который выполнится через n секунд (с использованием wait), но запустить его нужно не через равные промежутки времени, а по условию. Короче, как можно запустить отложенный код не стопая основного потока программы?
Заранее спасибо

Автор: Levo222 18.11.2019, 4:23

https://forum.uokit.com/index.php?s=&showtopic=69890&view=findpost&p=434167

Автор: Fors1k 18.11.2019, 21:53

Цитата(NeTLeaDeR @ 17.11.2019, 4:05) *
...
Или может есть какие-нибудь альтернативы?
Короче, как можно запустить отложенный код не стопая основного потока программы?

"Основной поток программы"
Код
...
if hour = 22 // отложенный запуск
    start_script 2
end_if
...
end_script

"отложенный код"
Код
//отложенный код

Автор: Levo222 19.11.2019, 19:30

Цитата(Fors1k @ 19.11.2019, 1:53) *


if hour = 22 // отложенный запуск


Помоему он спрашивает можно ли в одном скрипте выполнять 2 потока, а не в 2-х. Меня тот же вопрос интересовал

Автор: Fors1k 19.11.2019, 20:12

Цитата(Levo222 @ 19.11.2019, 19:30) *

Помоему он спрашивает можно ли в одном скрипте выполнять 2 потока, а не в 2-х. Меня тот же вопрос интересовал

В чем разница, если имеется возможность глобального обращения к переменным?

Автор: Levo222 22.11.2019, 22:29

Цитата(Fors1k @ 20.11.2019, 0:12) *

В чем разница, если имеется возможность глобального обращения к переменным?

Это уже не многопоточность а многонаправленность., как если бы 10 дел делал не 1 человек а делегировал свои полномочия 9-ти разным людям, которые бы за него данную работу делали.

Автор: Fors1k 23.11.2019, 0:22

Цитата(Levo222 @ 22.11.2019, 22:29) *

если бы 10 дел делал не 1 человек а делегировал свои полномочия 9-ти разным людям, которые бы за него данную работу делали.

И в итоге 10 дел стали бы выполняться одновременно, что и является многопоточностью.
Если нужно сделать бассейн, и первый копает для него яму, не имея права останавливаться, то он может попросить второго сбегать за шлангом с для воды, и подключить его. Это автор и просил.

Автор: Levo222 23.11.2019, 16:12

Цитата(Fors1k @ 23.11.2019, 4:22) *

И в итоге 10 дел стали бы выполняться одновременно, что и является многопоточностью.
Если нужно сделать бассейн, и первый копает для него яму, не имея права останавливаться, то он может попросить второго сбегать за шлангом с для воды, и подключить его. Это автор и просил.

Нет это не многопоточность, вот сейчас решается такой вопрос количеством ядер(это как количество человек привлеченных к работе). По своей сути вопрос о многопоточности относится к качеству единоличного исполнения всего кода одним ядром/скриптом, а не количественным в увеличении скриптов/ядер/ПК. Чего Lua не может, как я понял из ответов где я ссылку дал.

Автор: DarkMaster 24.11.2019, 18:11

Многопоточность есть. НО там corutine который лично мне вообще непонятно на кой черт существует, т.к. поток там хоть и отдельный, но при его работе приостанавливается основной. Если либы для luajit которые реализуют полноценную многопоточку. Часть из них не удалось скомпилить, то, что было скомпиленным у меня в рамках пилоте не прошло встроенные тесты. Вопрос по-прежнему очень актуален.

https://github.com/torch/cutorch
https://github.com/torch/threads
были еще какие-то решения
Найти быстро не получилось по своим архивам, но гугл помнит =)

Автор: Levo222 24.11.2019, 22:58

Цитата(DarkMaster @ 24.11.2019, 22:11) *

у меня в рамках пилоте не прошло встроенные тесты. Вопрос по-прежнему очень актуален.

Короче вы не очень то этим и занимались)

Автор: Cockney 24.11.2019, 23:15

Цитата
Короче вы не очень то этим и занимались)


Никто не будет против если вы освоите данное направление.

Автор: DarkMaster 24.11.2019, 23:53

Цитата
Короче вы не очень то этим и занимались)

Я убил на это около двух недель. Сколько мне еще нужно было этим заниматься? Я не в состоянии разбирать на куски эти вещи и лазить в дебаге чтобы фиксить. Возможно что-то не так собрано.

Русская версия Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)