Zucker 21 Опубликовано: 9 июля, 2015 Мне понравился этот сайт за очень точные ответы и решил задать еще один вопрос, на который я не в состоянии ответить. В OpenComputers есть библиотека Process API, можно ли ей воспользоваться для одновременной работы нескольких программ? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Zer0Galaxy 2 187 Опубликовано: 9 июля, 2015 Отлично. Но что он будет деалть когда его запустит в отдельном окружении. Сможет ли вывести на тот же экран новый запущенный процесс? Анализ библиотеки process.lua показал (по крайней мере мне), что при вызове функции process.load создается новая сопрограмма, тело которой берется из указанного файла. Создается, но не запускается. Чтобы эта сопрограмма работала, основная программа должна обмениваться с ней событиями при помощи функций coroutin.resume и coroutine.yield, каковых я в библиотеке не обнаружил. По поводу того, сможет ли сопрограмма выводить на экран или делать что еще. Всё зависит от того, что ей разрешить в окружении. Если в окружении будет указано {term=term}, то наверное сможет выводить на экран. Но, как сказал Фингер, это похоже системная либа и прикладного применения, скорее всего не найдет. 1 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Quant 442 Опубликовано: 9 июля, 2015 Есть библиотека Threads где-то на сайте - не парься и воспользуйся ей. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Zucker Автор вопроса 21 Опубликовано: 9 июля, 2015 Есть библиотека Threads где-то на сайте - не парься и воспользуйся ей. Да, но для чего-то она сделана) хочу подробно узнать, в интренете нет ничего кроме пояснения в API Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Quant 442 Опубликовано: 9 июля, 2015 Да, но для чего-то она сделана) хочу подробно узнать, в интренете нет ничего кроме пояснения в API Можешь запустить и проверить,надо к этому привыкать. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Zucker Автор вопроса 21 Опубликовано: 9 июля, 2015 Можешь запустить и проверить,надо к этому привыкать. Моя цель узнать подробно действи API, что она может, потому что я не совсем могу понять. Он выводит номер процесса и все. После этого тишина. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Fingercomp 4 409 Опубликовано: 9 июля, 2015 Моя цель узнать подробно действи API, что она может, потому что я не совсем могу понять. Он выводит номер процесса и все. После этого тишина. Как я понял, API может быть нужна для какой-то мультифайловой программе, где какой-то основной скрипт вызывает другой в отдельном окружении, который будет выполняться отдельно от программы. То бишь, это создание ещё одного потока из совершенно другого файла, если говорить попроще. Если же необходимо в моно-файле организовать мультипоточность, рекомендую воспользоваться библиотекой thread от уважаемого @Zer0Galaxy: http://computercraft.ru/topic/634-mnogopotochnost-v-opencomputers/ 1 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Zucker Автор вопроса 21 Опубликовано: 9 июля, 2015 Как я понял, API может быть нужна для какой-то мультифайловой программе, где какой-то основной скрипт вызывает другой в отдельном окружении, который будет выполняться отдельно от программы. То бишь, это создание ещё одного потока из совершенно другого файла, если говорить попроще. Если же необходимо в моно-файле организовать мультипоточность, рекомендую воспользоваться библиотекой thread от уважаемого @Zer0Galaxy: http://computercraft.ru/topic/634-mnogopotochnost-v-opencomputers/ Отлично. Но что он будет деалть когда его запустит в отдельном окружении. Сможет ли вывести на тот же экран новый запущенный процесс? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Fingercomp 4 409 Опубликовано: 9 июля, 2015 Отлично. Но что он будет деалть когда его запустит в отдельном окружении? Сможет ли вывести на тот же экран новый запущенный процесс? Признаюсь честно — мне никогда не нужна была это либа, потому её не использовал) Так что ответить на вопрос я не смогу. Вообще, как мне кажется, она мало где может использоваться: всё-таки это больше "системная" либа, нежели для разработки программ. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Zucker Автор вопроса 21 Опубликовано: 9 июля, 2015 Анализ библиотеки process.lua показал (по крайней мере мне), что при вызове функции process.load создается новая сопрограмма, тело которой берется из указанного файла. Создается, но не запускается. Чтобы эта сопрограмма работала, основная программа должна обмениваться с ней событиями при помощи функций coroutin.resume и coroutine.yield, каковых я в библиотеке не обнаружил. По поводу того, сможет ли сопрограмма выводить на экран или делать что еще. Всё зависит от того, что ей разрешить в окружении. Если в окружении будет указано {term=term}, то наверное сможет выводить на экран. Но, как сказал Фингер, это похоже системная либа и прикладного применения, скорее всего не найдет. Спасибо, класс. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Мне понравился этот сайт за очень точные ответы и решил задать еще один вопрос, на который я не в состоянии ответить.
В OpenComputers есть библиотека Process API, можно ли ей воспользоваться для одновременной работы нескольких программ?
Поделиться сообщением
Ссылка на сообщение
Поделиться на других сайтах