![]() |
|
Модераторы: LSD, AntonSaburov |
![]()
|
|
| susanin |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 587 Регистрация: 7.10.2006 Где: Санкт-Петербург Репутация: 1 Всего: 7 |
вобщем начал изучать многопоточность и тут возник вопрос при написании несложной программы
по идее должны выводится числа по 3 одинаковых числа для каждого потока.. 0 0 0 1 1 1 и тд.. вначале они так и выводятся... но после примерно шага 50 (бывает по разному) начинаютс сбои и выводится 30 30 30 31 31 32 32 31 33 33 32 33 34 34 34 как видно числа начинаю сбиваться...т.е. потоки начинаю опережать друг друга..это происходит из за маленькой задержки в sleep как я понимаю... и избежать можно этого используя блокирование потока...но вот по какому условию сделать блокирование в такой ситуации? подскажите пожалуйста и поправьте меня если я что то неправильно сказал.. |
|||
|
||||
| ivg |
|
|||
![]() Autonomous R&D ![]() ![]() Профиль Группа: Участник Сообщений: 686 Регистрация: 8.2.2006 Где: Екатеринбург Репутация: 33 Всего: 81 |
|
|||
|
||||
| susanin |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 587 Регистрация: 7.10.2006 Где: Санкт-Петербург Репутация: 1 Всего: 7 |
чтобы не создавать новую тему спрошу здесь еще один вопрос...
почему в этом примере числа выводятся Thread-32 32 Thread-33 33 Thread-34 34 Thread-35 35 Thread-36 36 Thread-37 37 Thread-38 38 Thread-99 99 Thread-98 98 Thread-97 97 Thread-96 96 почему после 38 потока сразу идет 99 и потом по уменьшению? |
|||
|
||||
| dorogoyIV |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1503 Регистрация: 26.3.2007 Репутация: 3 Всего: 46 |
||||
|
||||
| susanin |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 587 Регистрация: 7.10.2006 Где: Санкт-Петербург Репутация: 1 Всего: 7 |
||||
|
||||
| Dummy |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 263 Регистрация: 21.5.2007 Репутация: 9 Всего: 19 |
susanin, нет оснований считать, что выполнение методов run() для сотни запущенных потоков происходит именно в том порядке, в котором ты вызывал для них start(). Неупорядоченность может быть вызвана:
|
|||
|
||||
| susanin |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 587 Регистрация: 7.10.2006 Где: Санкт-Петербург Репутация: 1 Всего: 7 |
Dummy , спасибо за конкретный ответ! именно это я и предполагал, прост охотел убедится в своих предположениях..
|
|||
|
||||
![]()
|
| Правила форума "Java" | |
|
|
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Java: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |