Re: Объясните терминологию thread join
От: AeroSun  
Дата: 03.06.18 10:45
Оценка: 11 (3) +1
Здравствуйте, Максим Рогожин, Вы писали:

МР>Привет всем!


МР>Объясните, пожалуйста, почему метод std::thread::join() называется именно так, а не wait(), например. Ведь мы именно ждем поток, а не присоединяем его куда-то.

МР>Второй вариант вроде бы более естественный.

Это получилось чисто исторически. (фактически большинство глупостей в нашем мире объясняется этой причиной)
С тех пор тянется в Posix до наших дней.
В Posix вообще много логических глупостей.
Re: Объясните терминологию thread join
От: antropolog  
Дата: 03.06.18 17:48
Оценка: 37 (2) +1
Здравствуйте, Максим Рогожин, Вы писали:

Fork-join model
Re: Объясните терминологию thread join
От: Евгений Музыченко Франция https://software.muzychenko.net/ru
Дата: 02.06.18 07:33
Оценка: 2 (1) +2
Здравствуйте, Максим Рогожин, Вы писали:

МР>Ведь мы именно ждем поток, а не присоединяем его куда-то.


Имеется в виду слияние, стыковка логики выполнения. Сперва она разветвляется на несколько потоков, а затем сливается в один, хотя бы временно.
Объясните терминологию thread join
От: Максим Рогожин Россия  
Дата: 02.06.18 06:41
Оценка:
Привет всем!

Объясните, пожалуйста, почему метод std::thread::join() называется именно так, а не wait(), например. Ведь мы именно ждем поток, а не присоединяем его куда-то.

И почему thread API сделано так:
void func() {
   thread t(...);
   t.join(); // запускающий поток будет ждать t
}

а не так:
void func() {
   thread t(...);
   Thread::current().wait(t); // запускающий поток будет ждать t
}

Второй вариант вроде бы более естественный.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.