Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Thread 
V
    Опции темы
Samotnik
Дата 15.6.2007, 16:34 (ссылка) |   (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Super star !
****


Профиль
Группа: Awaiting Authorisation
Сообщений: 7192
Регистрация: 4.11.2006
Где: Минск City

Репутация: 8
Всего: 191



Добрый день!!!
Вобщем работал с потоками, все круто, понятно, только вот заинтересовало следущее.
Чем отличаются запись
Код

Thread t;
t = new Thread();

от 
Код

Thread t;
t = new Thread(this);

 smile    ?????
подскажите плз кто знает!!!

Пэ.Эс.
Ну вобщем интуитивно я догадываюсь, что this это ссылка на текущий обьект потока, но хотелось бы так сказать по-подробнее!!!!!
PM MAIL   Вверх
LSD
Дата 15.6.2007, 16:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


Профиль
Группа: Модератор
Сообщений: 15718
Регистрация: 24.3.2004
Где: Dublin

Репутация: 210
Всего: 538



Вообще-то this это должен быть объект типа Runnable, метод run() которого и будет выполняться в данном потоке.


--------------------
Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it.
PM MAIL WWW   Вверх
Samotnik
Дата 15.6.2007, 16:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Super star !
****


Профиль
Группа: Awaiting Authorisation
Сообщений: 7192
Регистрация: 4.11.2006
Где: Минск City

Репутация: 8
Всего: 191



Т.е.
получается в первом случае был просто создан поток, а во втором, после создания. Этот поток метод run  запускает ????   Т.е. мало того что он создался, так он еще и запустился так что ли??
PM MAIL   Вверх
EvgenZ
Дата 15.6.2007, 17:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Freedom in me
**


Профиль
Группа: Участник
Сообщений: 407
Регистрация: 3.8.2006

Репутация: нет
Всего: 11



Выполняться поток начнет после 
Код

Thread t;
t = new Thread(this);
t.start();  //вот тут он начнет выполняться

вообще t.start(); выполняет метод public void run(){}

Добавлено через 2 минуты и 56 секунд
Передача this в качестве параметра сообщает потоку, что надо чтобы новый поток на this объекте вызывал метод run() .


--------------------
<удалено администрацией форума>
PM MAIL   Вверх
EvgenZ
Дата 15.6.2007, 17:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Freedom in me
**


Профиль
Группа: Участник
Сообщений: 407
Регистрация: 3.8.2006

Репутация: нет
Всего: 11



Т.е. если без this, то рождается новый поток, а если указать this, то рождается дочерний поток от текущего. Если указан this, то у рожденного потока приоритет станет, как у родителя, а если без, то 5.

З.Ы. вроде бы так.


--------------------
<удалено администрацией форума>
PM MAIL   Вверх
Samotnik
Дата 15.6.2007, 23:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Super star !
****


Профиль
Группа: Awaiting Authorisation
Сообщений: 7192
Регистрация: 4.11.2006
Где: Минск City

Репутация: 8
Всего: 191



Как я понял, в конечном счете, все сводиться к тому, чтоthis  указатель, в данном случае нужен, только для того, чтобы определить какой обьект от какого потока рождаться будет ? так,  и больше не на что не влияет??

Пэ.Эс.
Ща попробую по другому протестить!!!
PM MAIL   Вверх
s8e8r8g8e
Дата 16.6.2007, 08:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 41
Регистрация: 12.5.2006

Репутация: 1
Всего: 1



с this это возможно что-то осмысленное ещё будет, а вот 1й вариант это вобще пустое место, которое не совсем счас понимаю для чего может сгодится
PM MAIL   Вверх
LSD
Дата 16.6.2007, 09:13 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


Профиль
Группа: Модератор
Сообщений: 15718
Регистрация: 24.3.2004
Где: Dublin

Репутация: 210
Всего: 538



Цитата(Samotnik @  15.6.2007,  17:46 Найти цитируемый пост)
получается в первом случае был просто создан поток, а во втором, после создания. Этот поток метод run  запускает ????   Т.е. мало того что он создался, так он еще и запустился так что ли??

Чтобы выполнить некий код в отдельном потоке, надо: или унаследовать свой класс от Thread и переопределить метод run(), или в своем классе имплементировать интерфейс Runnable и в методе run() выполнить необходимые действия.
Посему: первый код бесмысленный полностью, второй осмысленен только если this указывает на объект имплементирующий Runnable.


--------------------
Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it.
PM MAIL WWW   Вверх
Samotnik
Дата 16.6.2007, 14:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Super star !
****


Профиль
Группа: Awaiting Authorisation
Сообщений: 7192
Регистрация: 4.11.2006
Где: Минск City

Репутация: 8
Всего: 191



2 LSD
 smile 
Спасибо большое, как обычно вы на высоте, офигенно понятно и доступно, паибо еще раз  smile  !!

Добавлено через 3 минуты и 18 секунд
Забыл....
тему закрываю!!!!
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
javastic
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0856 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.