powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Быстро перейти с С++ на Java
25 сообщений из 64, страница 2 из 3
Быстро перейти с С++ на Java
    #37802668
chpasha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ivanov-voidИнтерфейс ThreadFactory требует реализации метода с аргументом, реализующим Runnable.
public class Thread
extends Object
implements Runnable

основной недостаток наследования от Thread это невозможность наследоваться от чего-то еще.
...
Рейтинг: 0 / 0
Быстро перейти с С++ на Java
    #37802726
risk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
chpashaivanov-voidИнтерфейс ThreadFactory требует реализации метода с аргументом, реализующим Runnable.
public class Thread
extends Object
implements Runnable

основной недостаток наследования от Thread это невозможность наследоваться от чего-то еще.
Ну конечно... При этом, это уже относится не многопоточности, а к проблемам множественного наследования в яве через интерфейсы....
...
Рейтинг: 0 / 0
Быстро перейти с С++ на Java
    #37802867
Фотография ivanov-void
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
chpashaосновной недостаток наследования от Thread это невозможность наследоваться от чего-то еще.
Не основной. Наследование от Thread приводит к сильной связности кода задач, выполняемых параллельно, с выбором параллелизма.


risk При этом, это уже относится не многопоточности, а к проблемам множественного наследования в яве через интерфейсы....
Проблем множественного наследования в Java с применением интерфейсов нет. И тем не менее это имеет прямое отношение к вопросам многопоточности.
...
Рейтинг: 0 / 0
Быстро перейти с С++ на Java
    #37802907
забыл ник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторЕсли Вы имеете в виду язык программирования, то нужно где-то полчаса времени. Столько же нужно, чтобы перейти с явы на сишарп. Другое дело, инструменты, классы, поля и методы.
Если бы я не знал, что вы часто тут отписываетесь и иногда говорите вещи по делу, я бы подумал что это высказывание принадлежит троллю.
Собственно, что касается многопоточности, вот на этом
авторА чем многопоточность в яве отличается от какой-то другой многопоточности? Даже методы очень часто одинаково называются (типа, синхронизе и т.п.). Кстати, в яве это дело очень даже понятно сделано: или наследоваться от класса Thread, или использовать (implements) интерфейс Runnable.

конечно можно останавливать дискуссию:) Лол

Если по делу, то такие высказывания считаю полной профанацией, научиться понимать синтаксис и научиться программировать на языке, это две огогошеньки какие разницы. Многопоточность в java и ее memory model понимает хорошо если 1 девелопер из 10, для остальных это практически равносильно пустому звуку.

авторchpasha
основной недостаток наследования от Thread это невозможность наследоваться от чего-то еще.

Не основной. Наследование от Thread приводит к сильной связности кода задач, выполняемых параллельно, с выбором параллелизма.

Послушайте человека, он вам правильные вещи говорит, ну а если он не авторитет, то хотя бы ради приличия прочитайте java concurrency in practice.
В промышленных приложениях, практически вся многопоточность идет через Executors, который как уже отметили принимает Runnable, это позволяет не писать своих велосипедов(которые не факт что получится написать), а воспользоваться опытом профессионалов. Работа через Executors позволяет отделить механизм запуска задач и управления ими от собственно самих задач.
...
Рейтинг: 0 / 0
Быстро перейти с С++ на Java
    #37802910
забыл ник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Проблем множественного наследования в Java с применением интерфейсов нет.

Ну это слишком сильное заявление) Недаром уже который год обсуждают дополнение java traitами.
...
Рейтинг: 0 / 0
Быстро перейти с С++ на Java
    #37802943
risk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
забыл никПослушайте человека, он вам правильные вещи говорит, ну а если он не авторитет, то хотя бы ради приличия прочитайте java concurrency in practice.
В промышленных приложениях, практически вся многопоточность идет через Executors, который как уже отметили принимает Runnable, это позволяет не писать своих велосипедов(которые не факт что получится написать), а воспользоваться опытом профессионалов. Работа через Executors позволяет отделить механизм запуска задач и управления ими от собственно самих задач.

Не надо сюда вмешивать конкарренси... Это уже надстройка над Thread и Runable... еще атомарными переменными-операциями и волотайер.... Надо для начала разобраться с простым, а уже потом лезть с дебри...
...
Рейтинг: 0 / 0
Быстро перейти с С++ на Java
    #37802945
risk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
забыл ник Проблем множественного наследования в Java с применением интерфейсов нет.

Ну это слишком сильное заявление) Недаром уже который год обсуждают дополнение java traitами.
Блин, я с опаской жду таких дополнений в Джаве.... Тут и без них в двух соснах путаемся... А потом вообще потеряемся.... Но в принципе вы правы - проблемы с множественным наследованием есть и это traits одна из попыток их решить...
...
Рейтинг: 0 / 0
Быстро перейти с С++ на Java
    #37802948
risk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ivanov-voidНе основной. Наследование от Thread приводит к сильной связности кода задач, выполняемых параллельно, с выбором параллелизма.

Ну ка ну ка расскажите нам темным, какие есть "параллелизмы" в яве ?
...
Рейтинг: 0 / 0
Быстро перейти с С++ на Java
    #37802949
забыл ник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
riskНе надо сюда вмешивать конкарренси... Это уже надстройка над Thread и Runable... еще атомарными переменными-операциями и волотайер.... Надо для начала разобраться с простым, а уже потом лезть с дебри....

Сюда это куда? Естественно это не место для обсуждения всяких деталей, имелся ввиду один посыл - изучить java за полчаса - это просто нереальный бред, и был приведен наглядный пример многопоточности, а есть же еще дженерики, ввод-вывод(сериализация), коллекции, всякие там equals compareTo... и это только язык, не говоря о множестве идиом паттернов и фреймворков
...
Рейтинг: 0 / 0
Быстро перейти с С++ на Java
    #37802955
risk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
забыл никСюда это куда? Естественно это не место для обсуждения всяких деталей, имелся ввиду один посыл - изучить java за полчаса - это просто нереальный бред, и был приведен наглядный пример многопоточности, а есть же еще дженерики, ввод-вывод(сериализация), коллекции, всякие там equals compareTo... и это только язык, не говоря о множестве идиом паттернов и фреймворков

Согласен в этом с Вами... Я просто говорил, о том что мы тут не можем разобраться с Runable и Thread.... а вы заговорили о конкарренси....
...
Рейтинг: 0 / 0
Быстро перейти с С++ на Java
    #37802993
chpasha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
забыл никПослушайте человека, он вам правильные вещи говорит, ну а если он не авторитет, то хотя бы ради приличия прочитайте java concurrency in practice.
В промышленных приложениях, практически вся многопоточность идет через Executors, который как уже отметили принимает Runnable
Дружочек, прежде чем писать глупости, читай. Thread реализует Runnable.

ivanov-voidchpashaосновной недостаток наследования от Thread это невозможность наследоваться от чего-то еще.
Не основной. Наследование от Thread приводит к сильной связности кода задачни к какой связности оно не приводит. Thread это Runnable, ты эту мысль понять в состоянии? Если ты наследуешься от Thread, можешь ссылаться на класс как на Runnable со всеми вытекающими.
...
Рейтинг: 0 / 0
Быстро перейти с С++ на Java
    #37803053
risk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
chpashaДружочек, прежде чем писать глупости, читай. Thread реализует Runnable.

Ну зачем же так палить контору ))))
...
Рейтинг: 0 / 0
Быстро перейти с С++ на Java
    #37803073
Фотография ivanov-void
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
chpashaни к какой связности оно не приводит

Приводит. Если вы расширяете Thread, то у вас и потокозависимый код, и инкапсуляция задачи, которая должна выполняться в отдельном потоке, комбинируется в одном классе.

Да, пулы потоков можно создавать и из наследников Thread, извиняюсь за дезинформацию; однако лучше этого не делать. Почему - см. выше.

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
...
/**
 * @author ivanov-void
 */
public class Main {
	/**
	 * @param argc
	 */
    public static void main(String[] argc) {
		ExecutorService executor = Executors.newFixedThreadPool(20);
		Runnable worker = new Worker(0);
		SomeThread thread = new SomeThread(0);
		for(int i = 0; ++i < 100; thread = new SomeThread(i))			
			executor.execute(thread);		

		executor.shutdown();
		while (!executor.isTerminated());
		
		System.out.println("Terminated all threads");
	}    
}
...

/**
 * @author ivanov-void
 */
public class SomeThread extends Thread {
	private final long count;
	/**
	 * @param count
	 */
	SomeThread(long count) {
		this.count = count;
	}
	/**
	 * 
	 */
	public void run() {
		long sum = 0;
		for (long i = -1; ++i < count; sum += i);				
		System.out.println(sum);
	}
}
...
...
Рейтинг: 0 / 0
Быстро перейти с С++ на Java
    #37803125
risk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ivanov-void
Код: java
1.
		for (long i = -1; ++i < count; sum += i);				



За одно это надо руки отбивать....
...
Рейтинг: 0 / 0
Быстро перейти с С++ на Java
    #37803134
Фотография ivanov-void
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
risk,

Ночь.
...
Рейтинг: 0 / 0
Быстро перейти с С++ на Java
    #37803769
забыл ник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
chpashaчитай.
Ок, приму к сведению. Встречное предложение прочесть что-нибудь по теме "Этикет" или "Как общаться с людьми и не выглядеть при этом быдлом".

chpashaThread реализует Runnable.

Ок, технически ты прав, только я не пойму зачем защищать явные глупости? Я имел ввиду, что интерфейс Executor кагбе намекает что туда надо передавать именно Runnable а не Thread. Передавать туда Thread хоть и технически возможно, но абсолютно бессмысленно. Это примерно такой же глупый и ненужный код как String description = new String("description"). Реалии таковы, что если вы пишете не какую-нибудь мелкую утилиту, то смысла использовать Thread напрямую нет, даже более того, кто-нибудь может умудриться вызвать на этом Thread start() или run(), не раз такое встречал.

ivanov-voidпропущено...

Не основной. Наследование от Thread приводит к сильной связности кода задачни к какой связности оно не приводит. Thread это Runnable, ты эту мысль понять в состоянии? Если ты наследуешься от Thread, можешь ссылаться на класс как на Runnable со всеми вытекающими.[/quot]
Можно, но зачем? Это бесмысленно, вы можете понять эту мысль?

И еще раз, вот это -

авторpublic class Thread
extends Object
implements Runnable

основной недостаток наследования от Thread это невозможность наследоваться от чего-то еще.

Не самый большой недостаток, с выходом j.u.c. создание нити через new Thread() можно сказать что deprecated
Так что, последуйте своему же совету и
авторпрежде чем писать глупости, читай
...
Рейтинг: 0 / 0
Быстро перейти с С++ на Java
    #37803822
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
странно, что организация потоков на прикладном уровне кода, занимает столько места в топике ;).
Наверно, imho незаслуженно.
...
Рейтинг: 0 / 0
Быстро перейти с С++ на Java
    #37803836
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
chpashaДружочек, прежде чем писать глупости, читай. Thread реализует Runnable.
ни к какой связности оно не приводит. Thread это Runnable, ты эту мысль понять в состоянии? Если ты наследуешься от Thread, можешь ссылаться на класс как на Runnable со всеми вытекающими.
Даже в базовой документации (то ли в JavaDoc, то ли в туториале) сказано что реализовывать Runnable предпочтительнее чем наследоваться от Thread. Какой великий смысл в том чтобы наследовать класс от Thread, но при этом использовать его исключительно как Runnable?
...
Рейтинг: 0 / 0
Быстро перейти с С++ на Java
    #37803845
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
chpashaни к какой связности оно не приводит
Наследуя задачи от Thread мы автоматом убиваем возможноть выстроить иерархию задач, т.к. множественного наследования в Java нет.
...
Рейтинг: 0 / 0
Быстро перейти с С++ на Java
    #37803873
chpasha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
забыл никВстречное предложение прочесть что-нибудь по теме "Этикет" или "Как общаться с людьми и не выглядеть при этом быдлом".

Дорогой друг, если писать незнакомым людям подобное:

забыл никПослушайте человека, он вам правильные вещи говорит, ну а если он не авторитет, то хотя бы ради приличия прочитайте java concurrency in practice.
можно еще не то услышать

забыл никОк, технически ты прав, только я не пойму зачем защищать явные глупости?
в каком месте я это делаю? всего лишь пытаюсь открыть глаза тем, кто не способен подумать головой, а только цитирует банальности.

забыл никЯ имел ввиду, что интерфейс Executor кагбе намекает что туда надо передавать именно Runnable а не Thread. Передавать туда Thread хоть и технически возможно, но абсолютно бессмысленно. Это примерно такой же глупый и ненужный код как String description = new String("description").
опять глупости. Executors принимает интерфейс как раз для того, чтобы в него передали то что удобно автору кода, при условии, что оно реализует интерфейс.

забыл ник Если ты наследуешься от Thread, можешь ссылаться на класс как на Runnable со всеми вытекающими.
Можно, но зачем? Это бесмысленно, вы можете понять эту мысль?
я правильно понимаю, ты пять минут назад еще не знал, что Thread это Runnable, a теперь пытаешься мне растолковать очевидное? Объясню на пальцах: я нигде не говорил, что нужно обязательно наследоваться от Thread. Однако ваши заходы про причины, почему этого делать не надо, за гранью глупости.

забыл никавторпрежде чем писать глупости, читай
просто ввернуть мою же фразу ни к селу ни к городу мало. цитировать тоже нужно уметь.
...
Рейтинг: 0 / 0
Быстро перейти с С++ на Java
    #37803892
chpasha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BlazkowiczНаследуя задачи от Thread мы автоматом убиваем возможноть выстроить иерархию задач, т.к. множественного наследования в Java нет.а я о чем 12584168 ?

BlazkowiczДаже в базовой документации (то ли в JavaDoc, то ли в туториале) сказано что реализовывать Runnable предпочтительнее чем наследоваться от Thread. Какой великий смысл в том чтобы наследовать класс от Thread, но при этом использовать его исключительно как Runnable?
блин читайте уже топики сначала. в каком месте я утверждал, что это нужно и хорошо? Поступило заявление о том, что при наследовании от Thread нельзя юзать пул потоков.
...
Рейтинг: 0 / 0
Быстро перейти с С++ на Java
    #37803919
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
chpashaа я о чем 12584168 ?
Так это и есть следствие сильной связанности с классом Thread. Вы ведь её отрицаете дальше.

chpashaблин читайте уже топики сначала.
Вот ещё. :)

chpashaв каком месте я утверждал, что это нужно и хорошо? Поступило заявление о том, что при наследовании от Thread нельзя юзать пул потоков.
"Нельзя" можно трактовать как "не возможно", а можно трактовать как "не стоит".
...
Рейтинг: 0 / 0
Быстро перейти с С++ на Java
    #37803925
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123странно, что организация потоков на прикладном уровне кода, занимает столько места в топике ;).
Наверно, imho незаслуженно.
Это всегда так когда спор идёт не о предмете спора а об аргументах. :)
...
Рейтинг: 0 / 0
Быстро перейти с С++ на Java
    #37803939
забыл ник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не ради холивара, а ради того что сейчас нечего делать:)
Вы так умело придираетесь к чужим словам и неправильно сформулированным фразам, и в упор не видите своих таких же косяков, это печально.

chpashaBlazkowiczНаследуя задачи от Thread мы автоматом убиваем возможноть выстроить иерархию задач, т.к. множественного наследования в Java нет.а я о чем 12584168 ?
Вообще, технически ничего не мешает сделать самый верхний класс иерархии наследником Thread, а остальные наследовать от него, только это, конечно, глупость несусветная.


chpashaBlazkowiczДаже в базовой документации (то ли в JavaDoc, то ли в туториале) сказано что реализовывать Runnable предпочтительнее чем наследоваться от Thread. Какой великий смысл в том чтобы наследовать класс от Thread, но при этом использовать его исключительно как Runnable?
блин читайте уже топики сначала. в каком месте я утверждал, что это нужно и хорошо? Поступило заявление о том, что при наследовании от Thread нельзя юзать пул потоков.
Зато вы очень хорошо читаете топик)

авторПослушайте человека, он вам правильные вещи говорит, ну а если он не авторитет, то хотя бы ради приличия прочитайте java concurrency in practice.
В промышленных приложениях, практически вся многопоточность идет через Executors, который как уже отметили принимает Runnable, это позволяет не писать своих велосипедов(которые не факт что получится написать), а воспользоваться опытом профессионалов. Работа через Executors позволяет отделить механизм запуска задач и управления ими от собственно самих задач.

Где тут хоть слово про то, что "при наследовании от Thread нельзя юзать пул потоков."(c)?

А вот это(уже который раз цитирую)

авторpublic class Thread
extends Object
implements Runnable

основной недостаток наследования от Thread это невозможность наследоваться от чего-то еще.

Если не глупо, то несоотвествует действительности. Не считая того, что Thread нерекомендуем в принципе, механизм Runnable + Executors позволяет отделить механизм запуска задач и управления ими от собственно самих задач.

авторя правильно понимаю, ты пять минут назад еще не знал, что Thread это Runnable,
Спасибо что объяснил, лол:)
...
Рейтинг: 0 / 0
Быстро перейти с С++ на Java
    #37803972
chpasha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BlazkowiczТак это и есть следствие сильной связанности с классом Thread. Вы ведь её отрицаете дальше.
гмм...если я говорю, что основной недостаток - невозможность наследования от чего-то еще, а мне возражают, что нет, это не основной недостаток, основной недостаток это связность - я начинаю подозревать, что под связностью человек имеет в виду что-то другое. нет? лично я под связностью понимаю, когда некий класс ссылается на наш Worker, в то время как ему достаточно Runnable.


Blazkowiczchpashaв каком месте я утверждал, что это нужно и хорошо? Поступило заявление о том, что при наследовании от Thread нельзя юзать пул потоков.
"Нельзя" можно трактовать как "не возможно", а можно трактовать как "не стоит".
так мы далеко заедем. но вот первоисточник:

авторРасширение Thread лишает возможности использования пулов. как предлагаешь понимать сие?
...
Рейтинг: 0 / 0
25 сообщений из 64, страница 2 из 3
Форумы / Java [игнор отключен] [закрыт для гостей] / Быстро перейти с С++ на Java
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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