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

Многопоточность в OpenComputers

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

 

 

Всё дело в том, что переключения между потоками осуществляются по слипам (по computer.pullSignal, если точнее). Слипов нет, и другие потоки управления не получают.

угу, в этом и суть грустишки. Ну ладно, спасибо=) 

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


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

Не вижу оснований для грусти. Добавить sleep в код не сложно, а параллелизм достигается другим путём.

 

Уже давно мы обсудили его в теме про турели, где обсуждение было удалено как оффтоп. Суть его в том, что проблема нехватки энергии или слотов в отдельном роботе несущественна, т.к. увеличение количества роботов увеличивает и суммарное количество слотов всей робо-системы.

 

Аналогично достигается и параллелизм. Например, хочется, чтобы робот принимал решения во время движений, а не между ними, особенно, когда принятие решений требует значительного времени. Но у робота есть возможность делегировать принятие решений серверу, тем временем выполняя физическую работу. Сервер же может часть своей работы раздать другим серверам.

 

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

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


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

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

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

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

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

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

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

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

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


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