|
|
|
Быстро перейти с С++ на Java
|
|||
|---|---|---|---|
|
#18+
ivanov-voidИнтерфейс ThreadFactory требует реализации метода с аргументом, реализующим Runnable. public class Thread extends Object implements Runnable основной недостаток наследования от Thread это невозможность наследоваться от чего-то еще. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.05.2012, 12:44:22 |
|
||
|
Быстро перейти с С++ на Java
|
|||
|---|---|---|---|
|
#18+
chpashaivanov-voidИнтерфейс ThreadFactory требует реализации метода с аргументом, реализующим Runnable. public class Thread extends Object implements Runnable основной недостаток наследования от Thread это невозможность наследоваться от чего-то еще. Ну конечно... При этом, это уже относится не многопоточности, а к проблемам множественного наследования в яве через интерфейсы.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.05.2012, 14:40:52 |
|
||
|
Быстро перейти с С++ на Java
|
|||
|---|---|---|---|
|
#18+
chpashaосновной недостаток наследования от Thread это невозможность наследоваться от чего-то еще. Не основной. Наследование от Thread приводит к сильной связности кода задач, выполняемых параллельно, с выбором параллелизма. risk При этом, это уже относится не многопоточности, а к проблемам множественного наследования в яве через интерфейсы.... Проблем множественного наследования в Java с применением интерфейсов нет. И тем не менее это имеет прямое отношение к вопросам многопоточности. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.05.2012, 16:40:24 |
|
||
|
Быстро перейти с С++ на Java
|
|||
|---|---|---|---|
|
#18+
авторЕсли Вы имеете в виду язык программирования, то нужно где-то полчаса времени. Столько же нужно, чтобы перейти с явы на сишарп. Другое дело, инструменты, классы, поля и методы. Если бы я не знал, что вы часто тут отписываетесь и иногда говорите вещи по делу, я бы подумал что это высказывание принадлежит троллю. Собственно, что касается многопоточности, вот на этом авторА чем многопоточность в яве отличается от какой-то другой многопоточности? Даже методы очень часто одинаково называются (типа, синхронизе и т.п.). Кстати, в яве это дело очень даже понятно сделано: или наследоваться от класса Thread, или использовать (implements) интерфейс Runnable. конечно можно останавливать дискуссию:) Лол Если по делу, то такие высказывания считаю полной профанацией, научиться понимать синтаксис и научиться программировать на языке, это две огогошеньки какие разницы. Многопоточность в java и ее memory model понимает хорошо если 1 девелопер из 10, для остальных это практически равносильно пустому звуку. авторchpasha основной недостаток наследования от Thread это невозможность наследоваться от чего-то еще. Не основной. Наследование от Thread приводит к сильной связности кода задач, выполняемых параллельно, с выбором параллелизма. Послушайте человека, он вам правильные вещи говорит, ну а если он не авторитет, то хотя бы ради приличия прочитайте java concurrency in practice. В промышленных приложениях, практически вся многопоточность идет через Executors, который как уже отметили принимает Runnable, это позволяет не писать своих велосипедов(которые не факт что получится написать), а воспользоваться опытом профессионалов. Работа через Executors позволяет отделить механизм запуска задач и управления ими от собственно самих задач. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.05.2012, 17:18:12 |
|
||
|
Быстро перейти с С++ на Java
|
|||
|---|---|---|---|
|
#18+
Проблем множественного наследования в Java с применением интерфейсов нет. Ну это слишком сильное заявление) Недаром уже который год обсуждают дополнение java traitами. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.05.2012, 17:19:58 |
|
||
|
Быстро перейти с С++ на Java
|
|||
|---|---|---|---|
|
#18+
забыл никПослушайте человека, он вам правильные вещи говорит, ну а если он не авторитет, то хотя бы ради приличия прочитайте java concurrency in practice. В промышленных приложениях, практически вся многопоточность идет через Executors, который как уже отметили принимает Runnable, это позволяет не писать своих велосипедов(которые не факт что получится написать), а воспользоваться опытом профессионалов. Работа через Executors позволяет отделить механизм запуска задач и управления ими от собственно самих задач. Не надо сюда вмешивать конкарренси... Это уже надстройка над Thread и Runable... еще атомарными переменными-операциями и волотайер.... Надо для начала разобраться с простым, а уже потом лезть с дебри... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.05.2012, 18:37:58 |
|
||
|
Быстро перейти с С++ на Java
|
|||
|---|---|---|---|
|
#18+
забыл ник Проблем множественного наследования в Java с применением интерфейсов нет. Ну это слишком сильное заявление) Недаром уже который год обсуждают дополнение java traitами. Блин, я с опаской жду таких дополнений в Джаве.... Тут и без них в двух соснах путаемся... А потом вообще потеряемся.... Но в принципе вы правы - проблемы с множественным наследованием есть и это traits одна из попыток их решить... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.05.2012, 18:40:15 |
|
||
|
Быстро перейти с С++ на Java
|
|||
|---|---|---|---|
|
#18+
ivanov-voidНе основной. Наследование от Thread приводит к сильной связности кода задач, выполняемых параллельно, с выбором параллелизма. Ну ка ну ка расскажите нам темным, какие есть "параллелизмы" в яве ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.05.2012, 18:41:57 |
|
||
|
Быстро перейти с С++ на Java
|
|||
|---|---|---|---|
|
#18+
riskНе надо сюда вмешивать конкарренси... Это уже надстройка над Thread и Runable... еще атомарными переменными-операциями и волотайер.... Надо для начала разобраться с простым, а уже потом лезть с дебри.... Сюда это куда? Естественно это не место для обсуждения всяких деталей, имелся ввиду один посыл - изучить java за полчаса - это просто нереальный бред, и был приведен наглядный пример многопоточности, а есть же еще дженерики, ввод-вывод(сериализация), коллекции, всякие там equals compareTo... и это только язык, не говоря о множестве идиом паттернов и фреймворков ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.05.2012, 18:44:20 |
|
||
|
Быстро перейти с С++ на Java
|
|||
|---|---|---|---|
|
#18+
забыл никСюда это куда? Естественно это не место для обсуждения всяких деталей, имелся ввиду один посыл - изучить java за полчаса - это просто нереальный бред, и был приведен наглядный пример многопоточности, а есть же еще дженерики, ввод-вывод(сериализация), коллекции, всякие там equals compareTo... и это только язык, не говоря о множестве идиом паттернов и фреймворков Согласен в этом с Вами... Я просто говорил, о том что мы тут не можем разобраться с Runable и Thread.... а вы заговорили о конкарренси.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.05.2012, 18:58:46 |
|
||
|
Быстро перейти с С++ на Java
|
|||
|---|---|---|---|
|
#18+
забыл никПослушайте человека, он вам правильные вещи говорит, ну а если он не авторитет, то хотя бы ради приличия прочитайте java concurrency in practice. В промышленных приложениях, практически вся многопоточность идет через Executors, который как уже отметили принимает Runnable Дружочек, прежде чем писать глупости, читай. Thread реализует Runnable. ivanov-voidchpashaосновной недостаток наследования от Thread это невозможность наследоваться от чего-то еще. Не основной. Наследование от Thread приводит к сильной связности кода задачни к какой связности оно не приводит. Thread это Runnable, ты эту мысль понять в состоянии? Если ты наследуешься от Thread, можешь ссылаться на класс как на Runnable со всеми вытекающими. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.05.2012, 19:45:54 |
|
||
|
Быстро перейти с С++ на Java
|
|||
|---|---|---|---|
|
#18+
chpashaДружочек, прежде чем писать глупости, читай. Thread реализует Runnable. Ну зачем же так палить контору )))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.05.2012, 21:40:26 |
|
||
|
Быстро перейти с С++ на Java
|
|||
|---|---|---|---|
|
#18+
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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.05.2012, 22:27:34 |
|
||
|
Быстро перейти с С++ на Java
|
|||
|---|---|---|---|
|
#18+
ivanov-void Код: java 1. За одно это надо руки отбивать.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.05.2012, 00:08:53 |
|
||
|
Быстро перейти с С++ на Java
|
|||
|---|---|---|---|
|
#18+
risk, Ночь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.05.2012, 00:38:32 |
|
||
|
Быстро перейти с С++ на Java
|
|||
|---|---|---|---|
|
#18+
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 Так что, последуйте своему же совету и авторпрежде чем писать глупости, читай ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.05.2012, 13:43:05 |
|
||
|
Быстро перейти с С++ на Java
|
|||
|---|---|---|---|
|
#18+
странно, что организация потоков на прикладном уровне кода, занимает столько места в топике ;). Наверно, imho незаслуженно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.05.2012, 14:03:09 |
|
||
|
Быстро перейти с С++ на Java
|
|||
|---|---|---|---|
|
#18+
chpashaДружочек, прежде чем писать глупости, читай. Thread реализует Runnable. ни к какой связности оно не приводит. Thread это Runnable, ты эту мысль понять в состоянии? Если ты наследуешься от Thread, можешь ссылаться на класс как на Runnable со всеми вытекающими. Даже в базовой документации (то ли в JavaDoc, то ли в туториале) сказано что реализовывать Runnable предпочтительнее чем наследоваться от Thread. Какой великий смысл в том чтобы наследовать класс от Thread, но при этом использовать его исключительно как Runnable? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.05.2012, 14:06:50 |
|
||
|
Быстро перейти с С++ на Java
|
|||
|---|---|---|---|
|
#18+
chpashaни к какой связности оно не приводит Наследуя задачи от Thread мы автоматом убиваем возможноть выстроить иерархию задач, т.к. множественного наследования в Java нет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.05.2012, 14:09:14 |
|
||
|
Быстро перейти с С++ на Java
|
|||
|---|---|---|---|
|
#18+
забыл никВстречное предложение прочесть что-нибудь по теме "Этикет" или "Как общаться с людьми и не выглядеть при этом быдлом". Дорогой друг, если писать незнакомым людям подобное: забыл никПослушайте человека, он вам правильные вещи говорит, ну а если он не авторитет, то хотя бы ради приличия прочитайте java concurrency in practice. можно еще не то услышать забыл никОк, технически ты прав, только я не пойму зачем защищать явные глупости? в каком месте я это делаю? всего лишь пытаюсь открыть глаза тем, кто не способен подумать головой, а только цитирует банальности. забыл никЯ имел ввиду, что интерфейс Executor кагбе намекает что туда надо передавать именно Runnable а не Thread. Передавать туда Thread хоть и технически возможно, но абсолютно бессмысленно. Это примерно такой же глупый и ненужный код как String description = new String("description"). опять глупости. Executors принимает интерфейс как раз для того, чтобы в него передали то что удобно автору кода, при условии, что оно реализует интерфейс. забыл ник Если ты наследуешься от Thread, можешь ссылаться на класс как на Runnable со всеми вытекающими. Можно, но зачем? Это бесмысленно, вы можете понять эту мысль? я правильно понимаю, ты пять минут назад еще не знал, что Thread это Runnable, a теперь пытаешься мне растолковать очевидное? Объясню на пальцах: я нигде не говорил, что нужно обязательно наследоваться от Thread. Однако ваши заходы про причины, почему этого делать не надо, за гранью глупости. забыл никавторпрежде чем писать глупости, читай просто ввернуть мою же фразу ни к селу ни к городу мало. цитировать тоже нужно уметь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.05.2012, 14:17:48 |
|
||
|
Быстро перейти с С++ на Java
|
|||
|---|---|---|---|
|
#18+
BlazkowiczНаследуя задачи от Thread мы автоматом убиваем возможноть выстроить иерархию задач, т.к. множественного наследования в Java нет.а я о чем 12584168 ? BlazkowiczДаже в базовой документации (то ли в JavaDoc, то ли в туториале) сказано что реализовывать Runnable предпочтительнее чем наследоваться от Thread. Какой великий смысл в том чтобы наследовать класс от Thread, но при этом использовать его исключительно как Runnable? блин читайте уже топики сначала. в каком месте я утверждал, что это нужно и хорошо? Поступило заявление о том, что при наследовании от Thread нельзя юзать пул потоков. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.05.2012, 14:23:18 |
|
||
|
Быстро перейти с С++ на Java
|
|||
|---|---|---|---|
|
#18+
chpashaа я о чем 12584168 ? Так это и есть следствие сильной связанности с классом Thread. Вы ведь её отрицаете дальше. chpashaблин читайте уже топики сначала. Вот ещё. :) chpashaв каком месте я утверждал, что это нужно и хорошо? Поступило заявление о том, что при наследовании от Thread нельзя юзать пул потоков. "Нельзя" можно трактовать как "не возможно", а можно трактовать как "не стоит". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.05.2012, 14:30:52 |
|
||
|
Быстро перейти с С++ на Java
|
|||
|---|---|---|---|
|
#18+
Petro123странно, что организация потоков на прикладном уровне кода, занимает столько места в топике ;). Наверно, imho незаслуженно. Это всегда так когда спор идёт не о предмете спора а об аргументах. :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.05.2012, 14:31:42 |
|
||
|
Быстро перейти с С++ на Java
|
|||
|---|---|---|---|
|
#18+
Не ради холивара, а ради того что сейчас нечего делать:) Вы так умело придираетесь к чужим словам и неправильно сформулированным фразам, и в упор не видите своих таких же косяков, это печально. 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, Спасибо что объяснил, лол:) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.05.2012, 14:35:16 |
|
||
|
Быстро перейти с С++ на Java
|
|||
|---|---|---|---|
|
#18+
BlazkowiczТак это и есть следствие сильной связанности с классом Thread. Вы ведь её отрицаете дальше. гмм...если я говорю, что основной недостаток - невозможность наследования от чего-то еще, а мне возражают, что нет, это не основной недостаток, основной недостаток это связность - я начинаю подозревать, что под связностью человек имеет в виду что-то другое. нет? лично я под связностью понимаю, когда некий класс ссылается на наш Worker, в то время как ему достаточно Runnable. Blazkowiczchpashaв каком месте я утверждал, что это нужно и хорошо? Поступило заявление о том, что при наследовании от Thread нельзя юзать пул потоков. "Нельзя" можно трактовать как "не возможно", а можно трактовать как "не стоит". так мы далеко заедем. но вот первоисточник: авторРасширение Thread лишает возможности использования пулов. как предлагаешь понимать сие? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.05.2012, 14:49:12 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=37803053&tid=2131750]: |
0ms |
get settings: |
17ms |
get forum list: |
16ms |
check forum access: |
5ms |
check topic access: |
5ms |
track hit: |
50ms |
get topic data: |
14ms |
get forum data: |
4ms |
get page messages: |
68ms |
get tp. blocked users: |
2ms |
| others: | 327ms |
| total: | 508ms |

| 0 / 0 |
