Перейти к содержимому
ProgramCrafter

Параллельный запуск программ

Дальнейшее развитие программы  

4 пользователя проголосовало

У вас нет разрешения голосовать в этом опросе или просматривать его результаты. Пожалуйста, войдите или зарегистрируйтесь для голосования в опросе.

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

Вероятно, многие хотели запустить несколько программ на одном компьютере (на OpenOS), чтобы они работали одновременно.

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

Важное условие: в каждой выполняемой программе должен быть os.sleep, event.pull или computer.pullSignal, чтобы она передавала управление другой.

 

Инструкция:

1. Скачайте программу: pastebin get wsJqngC5 parallel.lua

2. Запустите её.

3. Введите пути к программам, которые необходимо выполнить параллельно, через пробел (если программа одна, то введите её один раз).

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

5. Задайте аргументы для каждой запускаемой программы.

 

Если несколько программ должны работать параллельно, то почему бы не запустить их на разных мониторах? Это возможно: просто напишите в аргументы программы %GPU%. Эта строка автоматически заменится на адрес видеокарты.

 

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

 

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


Ссылка на сообщение
Поделиться на других сайтах
4 минуты назад, ProgramCrafter сказал:

Стоит ли сделать автоподстановку имён всех компонентов?

А что такое автоподстановка компонентов? Куда подставляются компоненты и по какому алгоритму?

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


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

Автоподстановка компонентов - замена %имя_компонента% в аргументах программы на его адрес. Это можно использовать, чтобы разные программы взаимодействовали с разными компонентами и не пытались, например, передавать разные данные через один контроллер редстоуна или рисовать разные интерфейсы на одном мониторе.

 

Сейчас в программе адреса видеокарт подставляются в том порядке, в каком их выдаёт component.list. Если видеокарт меньше, чем мест для подстановки, то список повторяется. Стоит ли сделать то же самое для других компонентов?

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


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

Возможно, фичу распределения одинаковых компонентов между программами имеет смысл сделать через механику primary-компонентов(__index метатаблицы component) и через кастомное упорядочивание результатов compoent.list

Тогда программы без изменений смогут работать

Изменено пользователем hohserg

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


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

Да, верно. Я не знаю ни одной программы, которая бы брала адрес GPU из аргументов. Лучше подменить component.getPrimary.

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


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

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

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

Гость
Ответить в тему...

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

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

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

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

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


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