Правильно ли я понимаю как работают green threads? Пытаюсь понять как работают зеленые нити. Как я понимаю их умеют не все языки. Из коробки они идут только в Go и D.
Как я это дело понял:
0. Гоурутины = фаеберы = зеленые нити
1. Внутри каждого процесса может выполняться множество нитей (чем это кстати ограничено?)
2. Фаеберы могут обмениваться данными через стек.
3. Чтобы можно было обмениваться данными через стек указатель на стек искусственно смещается выше чем нужно
4. Фаеберы могут перемещаться с одного нити на другую, если нить заблокирована
Я не нашел информации:
5. Какой максимальный размер стека в ОС?
6. может ли каждый процесс иметь свой стек?

21 Авг 2019 в 06:55
192 +1
0
Ответы
1

Да, вы правильно понимаете, как работают зеленые нити (green threads). Зеленые нити - это легковесные потоки управления, которые управляются средой выполнения языка программирования, а не операционной системой. Они могут быть использованы для параллельного выполнения кода в рамках одного процесса.

Что касается ваших вопросов:

Действительно, внутри каждого процесса может быть множество зеленых нитей. Однако, количество нитей, которые могут быть созданы в рамках одного процесса, может быть ограничено ресурсами операционной системы, такими как память.

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

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

Зеленые нити могут перемещаться с одной нити на другую, если одна из нитей блокирована. Это позволяет оптимизировать использование ресурсов и улучшить производительность.

Относительно вопросов, которые вы не нашли информацию:

Максимальный размер стека в операционной системе зависит от конкретной реализации и настроек операционной системы. Обычно операционные системы имеют ограничения на размер стека для каждого процесса или нити.

Да, каждый процесс может иметь свой собственный стек памяти. Это позволяет изолировать данные и состояние каждого процесса друг от друга и повышает безопасность и надежность выполнения программ.

20 Апр в 13:11
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Название заказа не должно быть пустым
Введите email
Бесплатные доработки
Гарантированные бесплатные доработки
Быстрое выполнение
Быстрое выполнение от 2 часов
Проверка работы
Проверка работы на плагиат
Интересные статьи из справочника
Поможем написать учебную работу
Название заказа не должно быть пустым
Введите email
Доверьте свою работу экспертам
Разместите заказ
Наша система отправит ваш заказ на оценку 84 749 авторам
Первые отклики появятся уже в течение 10 минут
Прямой эфир