Avevad 15 Опубликовано: 30 ноября, 2018 Можно ли в чистой Lua (ну или той которая используется в OC) сделать так чтобы две функции выполнялись ДЕЙСТВИТЕЛЬНО одновременно? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
eu_tomat 2 155 Опубликовано: 30 ноября, 2018 24 минуты назад, Avevad сказал: Можно ли в чистой Lua (ну или той которая используется в OC) сделать так чтобы две функции выполнялись ДЕЙСТВИТЕЛЬНО одновременно? Зависит от того, что считать действительно одновременным. Например, при выполнении двух потоков на одном ядре процессора об абсолютной одновременности не может быть и речи. Но переключение между потоками происходит столь быстро, что у человека создаётся иллюзия одновременности. И тогда возникает вопрос: а зачем требуется эта иллюзия? В некоторых случаях разделение программы на отдельные потоки упрощает код. В других случаях появляется возможность выполнять полезную нагрузку в ожидании ответа от медленной периферии. В третьем случае разделение на потоки позволяет использовать множество ядер и процессоров в системе. Тут выполнение и в самом деле может быть одновременным в физическом смысле этого слова. Что требуется в твоём случае? Второй вариант "одновременности" можно было использовать в ComputerCraft, там черепашки могли выполнять вычисления во время своего движения. В OpenComputers, насколько я знаю, подобное пока никому не удавалось. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Totoro 3 563 Опубликовано: 30 ноября, 2018 39 минут назад, Avevad сказал: Можно ли в чистой Lua (ну или той которая используется в OC) сделать так чтобы две функции выполнялись ДЕЙСТВИТЕЛЬНО одновременно? Нет. В OpenComputers для этого надо использовать два отдельных компьютера. В реальном мире эффективнее всего запустить два потока в основной программе (например на Си) и запустить интерпретатор Луа в каждом из этих потоков (хотя не вижу в этом особого смысла). 1 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Avevad Автор вопроса 15 Опубликовано: 30 ноября, 2018 Тоесть я не могу на ОС'овских компах сделать так чтобы у меня к примеру было два окна: в одном (к примеру) игра, в другом еще одна игра (к примеру)? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
eu_tomat 2 155 Опубликовано: 30 ноября, 2018 7 минут назад, Avevad сказал: Тоесть я не могу на ОС'овских компах сделать так чтобы у меня к примеру было два окна: в одном (к примеру) игра, в другом еще одна игра (к примеру)? А это как раз можно. Для этого не требуется одновременность, достаточно иллюзии. Например, есть экспериментальная операционная система WinOS от @RccHD. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Totoro 3 563 Опубликовано: 30 ноября, 2018 10 минут назад, Avevad сказал: Тоесть я не могу на ОС'овских компах сделать так чтобы у меня к примеру было два окна: в одном (к примеру) игра, в другом еще одна игра (к примеру)? Можешь. Для этого не нужна настоящая многопоточность. Почитай про корутины в Луа, а также глянь на библиотечку threads из OpenOS. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Можно ли в чистой Lua (ну или той которая используется в OC) сделать так чтобы две функции выполнялись ДЕЙСТВИТЕЛЬНО одновременно?
Поделиться сообщением
Ссылка на сообщение
Поделиться на других сайтах