Версия для печати темы
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)