Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / join / 18 сообщений из 18, страница 1 из 1
12.12.2012, 20:16:40
    #38076521
redwhite90
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
join
Поправьте пожалуйста мои суждения.
Есть обычные потоки, потоки-демоны.
Разница в том, что программа может завершиться(главный поток), а демоны еще не отработали и программа всё равно закрывается.
Вопрос в следующем: зачем тогда нужен метод join?
...
Рейтинг: 0 / 0
12.12.2012, 20:20:29
    #38076526
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
join
"Летят два крокодила, один зеленый, другой тоже в Африку"
Как вопрос связан с подводкой?
Есть потоки демоны.
Есть метод join().
...
Рейтинг: 0 / 0
12.12.2012, 20:25:35
    #38076538
redwhite90
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
join
так join же запускается внутри потока и гарантирует, что поток(для которого запустили join) отработает до конца.
...
Рейтинг: 0 / 0
12.12.2012, 20:27:27
    #38076545
redwhite90
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
join
то есть получается чтобы программа заканчивалась до завершения потоков нужно делать демоны, а чтобы она отработала до конца нужно желать join

а по умолчанию тогда как
...
Рейтинг: 0 / 0
12.12.2012, 20:31:29
    #38076553
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
join
redwhite90, тебе не нужны демоны.
...
Рейтинг: 0 / 0
12.12.2012, 20:33:02
    #38076558
redwhite90
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
join
объясните мне пожалуйста что к чему тут
...
Рейтинг: 0 / 0
12.12.2012, 20:33:30
    #38076561
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
join
redwhite90так join же запускается внутри потока и гарантирует, что поток(для которого запустили join) отработает до конца.
Никто никаких "гарантий" не даёт. join() успыляет текущий поток, пока не завершится ожидаемый. Какое отношение к этому имеют демоны мне до сих пор не понятно.
...
Рейтинг: 0 / 0
12.12.2012, 20:34:33
    #38076565
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
join
redwhite90то есть получается чтобы программа заканчивалась до завершения потоков нужно делать демоны
Типа того.

redwhite90 а чтобы она отработала до конца нужно желать join
Нет.

redwhite90а по умолчанию тогда как
При штатном завершении JVM не остановится, пока работают все не-демон-потоки.
...
Рейтинг: 0 / 0
12.12.2012, 20:34:50
    #38076566
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
join
redwhite90объясните мне пожалуйста что к чему тут
Вопрос задай внятный.
...
Рейтинг: 0 / 0
12.12.2012, 20:38:13
    #38076576
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
join
Горе от ума. Лучше-бы вообще про демоны не читал. А сначала просто про синхронизацию потоков.
...
Рейтинг: 0 / 0
12.12.2012, 20:42:39
    #38076581
redwhite90
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
join
redwhite90 а чтобы она отработала до конца нужно желать join
Нет.

как так то?
ведь допустим
main{
...
t.join
...
}

программа же не закончится, пока поток t не отработает
...
Рейтинг: 0 / 0
12.12.2012, 20:44:08
    #38076589
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
join
redwhite90как так то?
ведь допустим
main{
...
t.join
...
}

программа же не закончится, пока поток t не отработает

Что такое "программа" в твоей терминологии? JVM или Main-Thread?
...
Рейтинг: 0 / 0
12.12.2012, 20:46:53
    #38076592
redwhite90
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
join
Blazkowiczredwhite90как так то?
ведь допустим
main{
...
t.join
...
}

программа же не закончится, пока поток t не отработает

Что такое "программа" в твоей терминологии? JVM или Main-Thread?
Main-Thread
...
Рейтинг: 0 / 0
12.12.2012, 20:48:56
    #38076596
забыл ник
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
join
redwhite90redwhite90 а чтобы она отработала до конца нужно желать join
Нет.

как так то?
ведь допустим
main{
...
t.join
...
}

программа же не закончится, пока поток t не отработает

Демоны на то они и демоны - что к ним, никто по определению не должен джойнится. Демоны используют для фоновых задач небольшого приоритета. Ну отработал - ок, не отработал - и леший с ним.
А метод join используется для синхронизации 2 недемонов, чтобы прийти в одну точку в одно время. Вот и все дела
...
Рейтинг: 0 / 0
12.12.2012, 20:50:46
    #38076598
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
join
забыл никДемоны на то они и демоны - что к ним, никто по определению не должен джойнится. Демоны используют для фоновых задач небольшого приоритета. Ну отработал - ок, не отработал - и леший с ним.
А метод join используется для синхронизации 2 недемонов, чтобы прийти в одну точку в одно время. Вот и все дела
join() перпендикулярен демонам вообще. Можно два демона им синхронизовать если нужно.
...
Рейтинг: 0 / 0
12.12.2012, 20:53:12
    #38076601
redwhite90
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
join
Спасибо, теперь понятно
...
Рейтинг: 0 / 0
12.12.2012, 20:54:14
    #38076602
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
join
redwhite90Main-Thread
Если Main-Thread-у сделать join() на поток-демон, то он не завершится, пока не завершится демон.
А JVM не закроектся, пока не завершается все не-демоны, в том числе Main-Thread.
Тут два простейших определения.
join - один поток ждет другой.
deamon - JVM ждет все не-демон-потоки при закрытии.

Всё. Какие ещё могут быть вопросы? Поведение всех возможных комбинаций join и deamon логически выводится из этих двух определений.
...
Рейтинг: 0 / 0
12.12.2012, 22:28:24
    #38076714
забыл ник
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
join
Blazkowiczзабыл никДемоны на то они и демоны - что к ним, никто по определению не должен джойнится. Демоны используют для фоновых задач небольшого приоритета. Ну отработал - ок, не отработал - и леший с ним.
А метод join используется для синхронизации 2 недемонов, чтобы прийти в одну точку в одно время. Вот и все дела
join() перпендикулярен демонам вообще. Можно два демона им синхронизовать если нужно.
я на языке ТС:)
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / join / 18 сообщений из 18, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]