Помогите разобраться с потоками

.Freeze

Участник
Автор темы
42
3
Версия MoonLoader
.027.0-preview
Добрый день, на днях решил узнать как нужно вообще в этом коде использовать поток, или нет?
так-же хотел спросить чем больше в скрипте я создаю потоков это хорошо или плохо для него?


lua:
    while true do wait(0)
        if state then
            lua_thread.create(function()
                wait(200)
                sampAddChatMessage('1', -1)
                wait(500)
                sampAddChatMessage('2', -1)
                wait(1000)
                sampAddChatMessage('3', -1)
            end)
        end
    end
 

hinazuki

Потрачен
346
95
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Добрый день, на днях решил узнать как нужно вообще в этом коде использовать поток, или нет?
так-же хотел спросить чем больше в скрипте я создаю потоков это хорошо или плохо для него?


lua:
    while true do wait(0)
        if state then
            lua_thread.create(function()
                wait(200)
                sampAddChatMessage('1', -1)
                wait(500)
                sampAddChatMessage('2', -1)
                wait(1000)
                sampAddChatMessage('3', -1)
            end)
        end
    end
Если потоков много, скрипт крашнется.
Этот код вне main?
 

hinazuki

Потрачен
346
95
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.

hinazuki

Потрачен
346
95
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.

Tema05

Известный
1,442
403
Кратко: все нормально используешь. Так и надо. Про количество потоков не думай. У тебя некогда не будет реально по делу использовать их так много что станет плохо.


Потоки создаются в основном чтобы использовать wait. Чтобы не останавливать код создаётся отдельный независимый паралельно выполняемый блок где как раз можно использовать wait.

А вообще не понимаю предложений впихнуть это в main если только не должно выполниться 1 раз при запуске скрипта. Зачем останавливать main? Я вижу только лишь активацию например по кнопке нажатие которой проверяется внутри бесконечного цикла внутри main. Но эти ожидания остановят бесконечный цикл что совершенно не нужно.

По поводу количество потоков. Об этом даже не думай. Если ты случайно не будешь создавать поток в бесконечном цикле в потолок не упрёшься. Создавай хоть 20 и не парься. Вообще потоки полезная штука, которой можно также на 1 миллисекунд отсрочить выполнение чего либо для правильной поочередности. В imgui помогает.
 

.Freeze

Участник
Автор темы
42
3
Кратко: все нормально используешь. Так и надо. Про количество потоков не думай. У тебя некогда не будет реально по делу использовать их так много что станет плохо.


Потоки создаются в основном чтобы использовать wait. Чтобы не останавливать код создаётся отдельный независимый паралельно выполняемый блок где как раз можно использовать wait.

А вообще не понимаю предложений впихнуть это в main если только не должно выполниться 1 раз при запуске скрипта. Зачем останавливать main? Я вижу только лишь активацию например по кнопке нажатие которой проверяется внутри бесконечного цикла внутри main. Но эти ожидания остановят бесконечный цикл что совершенно не нужно.

По поводу количество потоков. Об этом даже не думай. Если ты случайно не будешь создавать поток в бесконечном цикле в потолок не упрёшься. Создавай хоть 20 и не парься. Вообще потоки полезная штука, которой можно также на 1 миллисекунд отсрочить выполнение чего либо для правильной поочередности. В imgui помогает.
Спасибо, за полезную инфу.
 
  • Нравится
Реакции: Tema05