Перейти к содержимому
  • 0
Zucker

Управление процессами.

Вопрос

Мне  понравился этот сайт за очень точные ответы и решил задать еще один вопрос, на который я не в состоянии ответить.

 

В OpenComputers есть библиотека Process API, можно ли ей воспользоваться для одновременной работы нескольких программ?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Рекомендуемые сообщения

Отлично. Но что он будет деалть когда его запустит в отдельном окружении. Сможет ли вывести на тот же экран новый запущенный процесс?

Анализ библиотеки process.lua показал (по крайней мере мне), что при вызове функции process.load создается новая сопрограмма, тело которой берется из указанного файла. Создается, но не запускается. Чтобы эта сопрограмма работала, основная программа должна обмениваться с ней событиями при помощи функций coroutin.resume и coroutine.yield, каковых я в библиотеке не обнаружил.

По поводу того, сможет ли сопрограмма выводить на экран или делать что еще. Всё зависит от того, что ей разрешить в окружении. Если в окружении будет указано {term=term}, то наверное сможет выводить на экран.

Но, как сказал Фингер, это похоже системная либа и прикладного применения, скорее всего не найдет.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Есть библиотека Threads где-то на сайте - не парься и воспользуйся ей.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Есть библиотека Threads где-то на сайте - не парься и воспользуйся ей.

Да, но для чего-то она сделана) хочу подробно узнать, в интренете нет ничего кроме пояснения в API

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Да, но для чего-то она сделана) хочу подробно узнать, в интренете нет ничего кроме пояснения в API

Можешь запустить и проверить,надо к этому привыкать.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Можешь запустить и проверить,надо к этому привыкать.

Моя цель узнать подробно действи API, что она может, потому что я не совсем могу понять. Он выводит номер процесса и все. После этого тишина.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Моя цель узнать подробно действи API, что она может, потому что я не совсем могу понять. Он выводит номер процесса и все. После этого тишина.

Как я понял, API может быть нужна для какой-то мультифайловой программе, где какой-то основной скрипт вызывает другой в отдельном окружении, который будет выполняться отдельно от программы. То бишь, это создание ещё одного потока из совершенно другого файла, если говорить попроще. Если же необходимо в моно-файле организовать мультипоточность, рекомендую воспользоваться библиотекой thread от уважаемого @Zer0Galaxy: http://computercraft.ru/topic/634-mnogopotochnost-v-opencomputers/

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Как я понял, API может быть нужна для какой-то мультифайловой программе, где какой-то основной скрипт вызывает другой в отдельном окружении, который будет выполняться отдельно от программы. То бишь, это создание ещё одного потока из совершенно другого файла, если говорить попроще. Если же необходимо в моно-файле организовать мультипоточность, рекомендую воспользоваться библиотекой thread от уважаемого @Zer0Galaxy: http://computercraft.ru/topic/634-mnogopotochnost-v-opencomputers/

Отлично. Но что он будет деалть когда его запустит в отдельном окружении. Сможет ли вывести на тот же экран новый запущенный процесс?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Отлично. Но что он будет деалть когда его запустит в отдельном окружении? Сможет ли вывести на тот же экран новый запущенный процесс?

Признаюсь честно — мне никогда не нужна была это либа, потому её не использовал) Так что ответить на вопрос я не смогу.

Вообще, как мне кажется, она мало где может использоваться: всё-таки это больше "системная" либа, нежели для разработки программ.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Анализ библиотеки process.lua показал (по крайней мере мне), что при вызове функции process.load создается новая сопрограмма, тело которой берется из указанного файла. Создается, но не запускается. Чтобы эта сопрограмма работала, основная программа должна обмениваться с ней событиями при помощи функций coroutin.resume и coroutine.yield, каковых я в библиотеке не обнаружил.

По поводу того, сможет ли сопрограмма выводить на экран или делать что еще. Всё зависит от того, что ей разрешить в окружении. Если в окружении будет указано {term=term}, то наверное сможет выводить на экран.

Но, как сказал Фингер, это похоже системная либа и прикладного применения, скорее всего не найдет.

Спасибо, класс.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить на вопрос...

×   Вы вставили отформатированное содержимое.   Удалить форматирование

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.


×
×
  • Создать...