Форум программистов, компьютерный форум, киберфорум
Java SE (J2SE)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.86/7: Рейтинг темы: голосов - 7, средняя оценка - 4.86
1 / 1 / 0
Регистрация: 27.08.2015
Сообщений: 25

Создание потока (Java)

19.09.2015, 21:39. Показов 1597. Ответов 17
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Недавно прочел про создание потоков в Java(путем реализации метода Runnable. Имеется следующий код.
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
public class MyThread implements Runnable{
    Thread t;
    MyThread(){
        t=new Thread(this, "МОЙ ПОТОК");
        t.start();
    }
    public void run() {
        //Любой код
    }
}
 
public class Tester{
public static void main(String[] args){
new MyThread();
}
}
Объясните, пожалуйста, подробно: что непосредственно происходит в конструкторе MyThread()? И почему мы создаем объект класса Thread, затем вызываем конструктор Thread, передавая ему аргументом this(это объект t как я понял?).
Подробнее пожалуйста. Спасибо))
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
19.09.2015, 21:39
Ответы с готовыми решениями:

Чтение теста из файлов в Java. java коллекции, потоки. создать приложение, в котором будет два отдельных потока
Создайте два текстовых файла с именами, например, countries.txt и capitals.txt. В первом файле должны быть перечислены названия стран,...

Создание нового потока из работающего потока
насколько это корректно? вроде всё нормально работает и именно так как задумывалось, но вопрос таки возник

Создание потока из потока.
Надо создать поток 1, в нем создать поток 2, сам я жуткий дураг, немаловероятно что правильного в коде вообще ничего нет ) ругается...

17
Эксперт Java
 Аватар для turbanoff
4094 / 3828 / 745
Регистрация: 18.05.2010
Сообщений: 9,331
Записей в блоге: 12
19.09.2015, 22:15
napster3, Видно, рано вам про потоки читать, если вы не знаете, что такое this...
0
169 / 66 / 15
Регистрация: 24.03.2013
Сообщений: 467
Записей в блоге: 1
19.09.2015, 22:16
Выучите основу наконец-то!
Читайте подробнее Шилда или иной учебник.

P.S. Хорошо бы ответить на этот вопрос Вам самому.
0
1 / 1 / 0
Регистрация: 27.08.2015
Сообщений: 25
19.09.2015, 22:30  [ТС]
Можно же ведь было написать тогда
Java
1
this = new Thread(this, "Мой поток")
Так зачем же написали "t=". Для разнообразия?
0
Автоматизируй это!
Эксперт Python
 Аватар для Welemir1
7392 / 4819 / 1246
Регистрация: 30.03.2015
Сообщений: 13,694
Записей в блоге: 29
20.09.2015, 12:47
Цитата Сообщение от napster3 Посмотреть сообщение
Можно же ведь было написать
кто сказал что можно? Может все-таки с основ начнете?
0
1 / 1 / 0
Регистрация: 27.08.2015
Сообщений: 25
20.09.2015, 22:21  [ТС]
Я написал:
Java
1
this.t = new Thread(this, "МОЙ ПОТОК")
И результат абсолютно тот же.
0
Эксперт Java
 Аватар для KEKCoGEN
2399 / 2224 / 565
Регистрация: 28.12.2010
Сообщений: 8,672
20.09.2015, 23:01
napster3, однако это не то что вы писали выше. Исходя из этого this это не t
0
1 / 1 / 0
Регистрация: 27.08.2015
Сообщений: 25
21.09.2015, 08:55  [ТС]
Я просто хочу понять, что же такое this, которое написано в скобках конструктора Thread. Что мы передаем ему первым аргументом.
0
2884 / 2296 / 769
Регистрация: 12.05.2014
Сообщений: 7,978
21.09.2015, 09:08
как переводится this?
0
1 / 1 / 0
Регистрация: 27.08.2015
Сообщений: 25
23.09.2015, 20:39  [ТС]
This переводится как "этот"

Добавлено через 38 секунд
И все-таки. Что же мы передаем ему первым аргументом?
0
Эксперт Java
 Аватар для turbanoff
4094 / 3828 / 745
Регистрация: 18.05.2010
Сообщений: 9,331
Записей в блоге: 12
23.09.2015, 22:43
napster3, Ссылку на текущий объект - объект, конструктор которого выполняется.
0
1 / 1 / 0
Регистрация: 27.08.2015
Сообщений: 25
24.09.2015, 00:02  [ТС]
Получается, что объект(класса MyThread) уже создан до того, как мы вазываем конструктор Thread?
0
Эксперт Java
 Аватар для KEKCoGEN
2399 / 2224 / 565
Регистрация: 28.12.2010
Сообщений: 8,672
24.09.2015, 00:16
Цитата Сообщение от napster3 Посмотреть сообщение
Получается, что объект(класса MyThread) уже создан до того, как мы вазываем конструктор Thread?
он в процессе создания
0
Эксперт Java
 Аватар для turbanoff
4094 / 3828 / 745
Регистрация: 18.05.2010
Сообщений: 9,331
Записей в блоге: 12
24.09.2015, 09:52
napster3, что-то вроде того. Это одна из причин почему НЕ рекомендуется передавать this куда-либо в конструкторе.
А особенно плохая идея - стартовать поток из конструктора
1
1 / 1 / 0
Регистрация: 27.08.2015
Сообщений: 25
24.09.2015, 18:48  [ТС]
Я знаю 2 метода создания потока:
Путем реализации интерфейса Runnable и путем расширения класса Thread(наследования).
Так какой же метод более предпочитается? И самое главное Почему?
0
Эксперт Java
 Аватар для KEKCoGEN
2399 / 2224 / 565
Регистрация: 28.12.2010
Сообщений: 8,672
24.09.2015, 18:57
napster3, иногда ваш класс уже расширяет другой класс и тогда он уже неможет расширять класс Thread, остается только интерфейс. А вообще одно и тоже по большей части. Класс Thread так же имплементирует интерфейс Runnable но дает ещё некоторые поля такие как name priority и.т.д
1
1 / 1 / 0
Регистрация: 27.08.2015
Сообщений: 25
24.09.2015, 20:29  [ТС]
Спасибо всем большое! ))
0
636 / 528 / 165
Регистрация: 01.04.2010
Сообщений: 1,843
25.09.2015, 08:09
Цитата Сообщение от napster3 Посмотреть сообщение
Я знаю 2 метода создания потока
Ты не прав. Создать поток можно только 1 способом: new java.lang.Thread().

А вот то, что он должен делать можно задать либо через Runnable, либо через наследование Thread.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
25.09.2015, 08:09
Помогаю со студенческими работами здесь

Обращение к JavaScript из потока Java
Доброго времени суток! Уважаемые, помогите юнцу справиться с головной болью, которая возникла при использовании потоков в Java. Суть...

Как запустить паралельно два потока JAVA?
Помогите, нужно запустить паралельно выполнение 2 действий без задержки.

Создание потока
Ситуация такая: пишу игрушку - логическую, на шахматной доске (человек против компьютера). Предполагается, что на ходе компьютера программа...

Создание потока
Доброй всем ночи! Перерыскал cplusplus.com, но так и не разобрался. Может ли кто-нибудь подсказать, как создать поток, который бы...

Создание потока
В общем дело такое, есть функция main, само собой, и есть функция void music (), void music () { Beep(1046, 300); //до Beep(1046,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
18
Ответ Создать тему
Новые блоги и статьи
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru