![]() |
|
Модераторы: LSD, AntonSaburov |
![]()
|
|
| Sleepy_PIP |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 512 Регистрация: 30.6.2004 Где: Moscow Репутация: 4 Всего: 12 |
Спасибо! буду копать .... -------------------- -- Sleepy_PIP. Pavel Pryazhentsev (ex. 2:5020/141) "... Лучше быть нужным, чем свободным ..." |
|||
|
||||
| igon |
|
||||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 327 Регистрация: 30.10.2004 Репутация: 1 Всего: 21 |
Нижеприведенная демо-программа позволяет избавиться от ссылок в листах и тем не менее обеспечить доступ к переменным конкретных тредов. Правда, в win32 не знаю, как следить за фантомами
Программа - именно демо, так что оптимизацией здесь и не пахнет -------------------- Хотите поговорить об этом? |
||||||
|
|||||||
| Domestic Cat |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5452 Регистрация: 3.5.2004 Где: Dallas, US Репутация: 50 Всего: 172 |
Делать так можно, только вот не все треды поймаешь - что если тред завершился до того, как его загнали в массив? И все равно ведь ты ссылки на треды хранишь в массиве - было, например 50 тредов, потом стало 10. А 40 ссылок в массиве висит.
-------------------- |
|||
|
||||
| igon |
|
||||||||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 327 Регистрация: 30.10.2004 Репутация: 1 Всего: 21 |
если (2) выполняется раньше (1) - пора менять профессию Ну, или, на худой конец, между (1) и (2) можно вставить Thread.sleep(1000)
list.add(a.getName()); добавляет в лист (массив) не ССЫЛКУ, а ИМЯ треда. ОК, чтобы более наглядно
Это абсолютно эквивалентно
Если под массивом подразумевался Thread[] - я ж говорю, что программа не оптимизирована. Вместо объявления стационарного заведомо большого массива правильнее определять его размерность из activeCount и далее использовать как локальную переменную в методе ActionPerformed Это сообщение отредактировал(а) igon - 24.11.2004, 18:33 -------------------- Хотите поговорить об этом? |
||||||||||
|
|||||||||||
| Sleepy_PIP |
|
||||||||||||||||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 512 Регистрация: 30.6.2004 Где: Moscow Репутация: 4 Всего: 12 |
что-то я запутался. ведь:
_добавляет_ треад в массив activeThreadArray, и ты сам пишешь что для доступа к методам класса тхреада надо:
т.е. класс тхреада (ссылка на него) все-ж сидит в массиве, или нет? а имена ты как я понимаю хранишь в листе:
тогда я вообще не понимаю (не вижу у тебя) - как и когда ссылка на класс тхреада уходит из массива при завершении тхреада. Как имена удаляются - вижу, а как классы тхреадов - не понял ... Поясните кто может пожалуста, а? Спасибо! -------------------- -- Sleepy_PIP. Pavel Pryazhentsev (ex. 2:5020/141) "... Лучше быть нужным, чем свободным ..." |
||||||||||||||||||
|
|||||||||||||||||||
| Domestic Cat |
|
||||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5452 Регистрация: 3.5.2004 Где: Dallas, US Репутация: 50 Всего: 172 |
Ты регистрируешь имена тредов, а потом каждую секундu их смотришь. Так воt, еслi тред завершается в 10:52:33 а ты делаешь enumerate в 10:52:56, кak ты вытянешь информацию с уже завершенного треда?
Об этом я и говорил.
Если массив сделать локальной переменной, то вse ок, тольko перформанс пострадаеt немногo. -------------------- |
||||||
|
|||||||
| igon |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 327 Регистрация: 30.10.2004 Репутация: 1 Всего: 21 |
Примерно вот так
Ух ты, как вы быстро реагируете -------------------- Хотите поговорить об этом? |
|||
|
||||
| igon |
|
||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 327 Регистрация: 30.10.2004 Репутация: 1 Всего: 21 |
Вообще-то я "затачивался" на неиспользование ссылок в листе
Чтобы перформансе не пострадал (за счет создания каждый раз нового массива) можно его (массив) чистить на выходе из ActionPerformed, присваивая null всем 200 элементам (на всякий случай). Но будет ли это быстрее?
то завершившийся в 10:52:33 тред в enumerate не попадет
И такая задача стоит??? Имя тред за собой чистит по завершении и исчезает БЕССЛЕДНО. И кто с него не успел вытянуть информацию - тот опоздал -------------------- Хотите поговорить об этом? |
||||
|
|||||
![]()
|
| Правила форума "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. |