Я сейчас читаю кусочки Обратимся к шаблонам параллелизма. Я немного запутался о кажущемся противоречии между утверждением о slide #16:Является ли просто нормальным горутин?
Когда основные возвратов, программа завершается и принимаю скучную функцию вместе с ней.
и еще один на slide #19 (в сочетании с example on slide #20):
Канал в Go обеспечивает связь между двумя goroutines, что позволяет им взаимодействовать.
Если main
является только goroutine, как это может привести к какой-либо другой (породил) goroutine остановиться, другими словами: в каком смысле goroutine назван main
особенным? *
* Я искал его, но ничего не нашли, очевидно, поучительный до сих пор; вопрос SO с перспективным названием Difference between the main goroutine and spawned goroutines of a Go program задает совершенно другую проблему.
редактировать: изменил название, чтобы сосредоточиться на разнице между основным и «нормальным» goroutines (после того, как наткнулась функции выполнения Go Goexit)
редактирования: упрощенный вопрос, еще более сфокусированный по особенностям основного
Что вы подразумеваете под «как он может взять под свой контроль другую горутин»? Похоже, что не упоминается о том, что горутин контролирует что-то еще. Обратите внимание, что когда программа возвращается из main(), весь процесс умирает/завершается. main() - почти «просто» гуротин. Но это особенное, потому что, естественно, здесь начинается выполнение всей программы (помимо любых выполняемых функций init()), и когда main() заканчивается, процесс умирает. – nos
@nos Я попытался прояснить это в вопросе, если это просто плохой английский, пожалуйста, помогите мне не родным. – Wolf
@nos * '... почти« просто »гуротин. Но это особенное, потому что ... '* именно то, что я прошу (можете ли вы объяснить это более подробно?). Первый пример в слайдах показывает канальную связь между основным и другим гортаном. Мне было интересно узнать больше, потому что я сравниваю это с потоками в Windows (там идея каждого потока эквивалентна в том смысле, что я могу поддерживать процесс, но каждый из них может выйти из процесса). (Я уже знаю: goroutines - это не потоки, но для сравнения я надеюсь лучше понять концепцию) – Wolf