Происхождение нити присоединиться - PullRequest
4 голосов
/ 06 ноября 2010

Почти все языки программирования, поддерживающие многопоточность, имеют метод, называемый join.Я понимаю, что делает join, но хотел бы знать, каково его происхождение?Разве имя, такое как finish не будет более подходящим?

Ответы [ 3 ]

4 голосов
/ 06 ноября 2010

Я думаю, что это происходит из аналогии путей выполнения. Путь выполнения программы разделился на два отдельных пути, когда был создан поток, и теперь вы хотите, чтобы два пути снова соединились в один путь.

3 голосов
/ 06 ноября 2010

Поток A и Поток B делали разные вещи, и теперь они собираются воссоединиться, потому что их результаты должны быть обменены - они присоединятся друг к другу, продолжат и, в конце концов, снова разделятся.

2 голосов
/ 06 ноября 2010

Как я понимаю / интерпретирую это (хотя поправьте меня, если я ошибаюсь), потоки выполнения должны вносить свой вклад в одну общую задачу (если нет взаимодействия между потоками, то они могут также быть отдельными процессами, после того, каквсе одно из главных направлений - это преодоление коммуникационного барьера между процессами).Поэтому кажется логичным, что подзадачи отходят от общей задачи, а затем снова включаются, а не попадают в тупик.Кроме того, видя, что при создании потока ему выделяются некоторые из его родительских ресурсов, даже если поток не возвращает значение, он все равно должен возвращать то, что ему было дано в первую очередь, таким образом, сливаясь или «соединяясь» с исходным потоком..

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