Как ОС понимает для какого потока предназначены данные? Поток А отправил запрос к БД, ОС переключилась на поток Б, но тут прилетели данные от потока А. Где они хранятся и как ОС понимает что их нужно отдать потоку А?
Что происходит с Go-рутинами в таком же случае. Как я понимаю каждая го-рутина тоже может отправить запрос к БД, потом передать управление на другую. Какой механизм разруливания данных реализован?

21 Авг 2019 в 06:51
176 +1
0
Ответы
1

В операционной системе данные от всех потоков хранятся в общей оперативной памяти. Когда ОС переключается между потоками, она сохраняет контекст каждого потока, включая состояние регистров процессора, указатель на стек и другие необходимые данные. Поэтому когда данные прилетают от потока А, ОС может определить, что они относятся к этому потоку, используя контекст потока.

В случае с Go-рутинами, каждая горутина имеет свой собственный стек и контекст, который управляется средой выполнения Go runtime. Когда горутина отправляет запрос к БД и передает управление другой горутине, среда выполнения Go runtime следит за этими контекстами и обеспечивает корректное взаимодействие между горутинами.

Механизм разруливания данных в случае с Go-рутинами реализован через механизм каналов (channels), который предоставляет безопасный и конкурентный способ обмена данными между горутинами. Горутины могут отправлять данные через каналы и получать данные из каналов, обеспечивая таким образом синхронизацию и безопасность обмена данными в многопоточной среде.

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