|
|
|
Быстро перейти с С++ на Java
|
|||
|---|---|---|---|
|
#18+
Имеется большой опыт разработки на C++, и небольшой (<0,5 года) на Java. Необходимо как можно быстрее подтянуть свои скилы по Jave. Что рекомендуете почитать? *желательно что-то наподобии серии по С++ от Меерса... (только для Java) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.05.2012, 21:37:53 |
|
||
|
Быстро перейти с С++ на Java
|
|||
|---|---|---|---|
|
#18+
dr001, Если Вы имеете в виду язык программирования, то нужно где-то полчаса времени. Столько же нужно, чтобы перейти с явы на сишарп. Другое дело, инструменты, классы, поля и методы. Только это зависит очень сильно от того, чем Вы хотите заниматься. Например, можно заниматься вэбом, а можно писать программы для стиральных машин. Таки, две большие разницы! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.05.2012, 21:54:15 |
|
||
|
Быстро перейти с С++ на Java
|
|||
|---|---|---|---|
|
#18+
Effective Java 2 ed. Ну и Thinking in Java 4 ed ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.05.2012, 22:05:34 |
|
||
|
Быстро перейти с С++ на Java
|
|||
|---|---|---|---|
|
#18+
dr001, Исходите из того, что сама технология Java представлена платформами - Java SE; Java SE for Embedded ; Sun Java Real Time System ; Java ME; Java Card; Java EE В каждой из них существуют свои стандарты технологий. Если учесть, что Java SE– основа для всех остальных платформ, то начать лучше с нее. Соответственно, литература. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.05.2012, 22:06:29 |
|
||
|
Быстро перейти с С++ на Java
|
|||
|---|---|---|---|
|
#18+
ivanov-void, Во-во. И я о том же. Только позвольте не согласиться с тем, что SE - основа для других платформ. Да, язык один и тот же, однозначно. Но ME отличается от SE не меньше, чем Card от EE. Это как отличаются си плюс-плюс под линух и подвенды. Ну да, язык один и тот же. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.05.2012, 22:17:58 |
|
||
|
Быстро перейти с С++ на Java
|
|||
|---|---|---|---|
|
#18+
ShSerge, Cпецификация языка, рантайм- окружение, JVM, JDK и пр. входят в JSE. JME требует наличия JDK, входящего в JSE . Java Card исключает многие возможности языка - типы char, double, float и long, transient, перечисления, многомерные массивы, финализаторы, клонирование объектов, потоки, при этом использует javac, входящий в JSE. Относительно C++ для Windows и Linux- можно использовать одни и те же стандартный C++ и Qt. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.05.2012, 23:09:51 |
|
||
|
Быстро перейти с С++ на Java
|
|||
|---|---|---|---|
|
#18+
ShSergedr001, Если Вы имеете в виду язык программирования, то нужно где-то полчаса времени. Столько же нужно, чтобы перейти с явы на сишарп. Другое дело, инструменты, классы, поля и методы. Только это зависит очень сильно от того, чем Вы хотите заниматься. Например, можно заниматься вэбом, а можно писать программы для стиральных машин. Таки, две большие разницы! Угу точно.... За полчаса можно разобраться с многопоточностью в яве, с ее моделью памяти.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.05.2012, 00:48:46 |
|
||
|
Быстро перейти с С++ на Java
|
|||
|---|---|---|---|
|
#18+
Когда я портировал себя с с++ на джава пересмотрел несколько книжек понравилась только "философия джава" так как походила на труд Страуструпа. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.05.2012, 04:45:48 |
|
||
|
Быстро перейти с С++ на Java
|
|||
|---|---|---|---|
|
#18+
riskУгу точно.... За полчаса можно разобраться с многопоточностью в яве, с ее моделью памяти.... А чем многопоточность в яве отличается от какой-то другой многопоточности? Даже методы очень часто одинаково называются (типа, синхронизе и т.п.). Кстати, в яве это дело очень даже понятно сделано: или наследоваться от класса Thread, или использовать (implements) интерфейс Runnable. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.05.2012, 21:14:37 |
|
||
|
Быстро перейти с С++ на Java
|
|||
|---|---|---|---|
|
#18+
ShSergeriskУгу точно.... За полчаса можно разобраться с многопоточностью в яве, с ее моделью памяти.... А чем многопоточность в яве отличается от какой-то другой многопоточности? Даже методы очень часто одинаково называются (типа, синхронизе и т.п.). Кстати, в яве это дело очень даже понятно сделано: или наследоваться от класса Thread, или использовать (implements) интерфейс Runnable. Ну если в могопоточности самое главное уметь запустить поток/нить... то каг бы не спорю... BTW в связи с тем что Ява кросплатформенная, Thread на разных ОС это разные вещи с точки зрения ОС... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.05.2012, 22:20:33 |
|
||
|
Быстро перейти с С++ на Java
|
|||
|---|---|---|---|
|
#18+
+ ко всему надо отметить, что разрабочик Шарпа очень хорошо знал целевую ОС... в отличии от разработчика Явы... Это так же является причиной многих различий в Явы и Шарпа.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.05.2012, 22:22:34 |
|
||
|
Быстро перейти с С++ на Java
|
|||
|---|---|---|---|
|
#18+
ShSergeА чем многопоточность в яве отличается от какой-то другой многопоточности? Реализация многопоточности зависит от целевой операционной системы. Поэтому для компилируемых языков поддержка обеспечивается сторонними библиотеками, в случае c Java поддержка существует на уровне языка. ShSergeКстати, в яве это дело очень даже понятно сделано: или наследоваться от класса Thread, или использовать (implements) интерфейс Runnable. Расширение Thread лишает возможности использования пулов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.05.2012, 22:28:22 |
|
||
|
Быстро перейти с С++ на Java
|
|||
|---|---|---|---|
|
#18+
riskShSergeпропущено... А чем многопоточность в яве отличается от какой-то другой многопоточности? Даже методы очень часто одинаково называются (типа, синхронизе и т.п.). Кстати, в яве это дело очень даже понятно сделано: или наследоваться от класса Thread, или использовать (implements) интерфейс Runnable. Ну если в могопоточности самое главное уметь запустить поток/нить... то каг бы не спорю... BTW в связи с тем что Ява кросплатформенная, Thread на разных ОС это разные вещи с точки зрения ОС... Да ну! И какие же оси Вы использовали? Я вот на многих осях проверял, но мне интересно было только виндовс и линух (убунту). Таки проверял. Однако, всё хорошо работает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.05.2012, 22:34:32 |
|
||
|
Быстро перейти с С++ на Java
|
|||
|---|---|---|---|
|
#18+
ivanov-voidРасширение Thread лишает возможности использования пулов. Весьма сомневаюсь, но давайте ссылочку, а лучше примерчик. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.05.2012, 22:39:39 |
|
||
|
Быстро перейти с С++ на Java
|
|||
|---|---|---|---|
|
#18+
ShSergeivanov-voidРасширение Thread лишает возможности использования пулов. Весьма сомневаюсь, но давайте ссылочку, а лучше примерчик. Тоже не совсем понял о чем речь... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.05.2012, 23:06:42 |
|
||
|
Быстро перейти с С++ на Java
|
|||
|---|---|---|---|
|
#18+
[offtop] risk+ ко всему надо отметить, что разрабочик Шарпа очень хорошо знал целевую ОС... в отличии от разработчика Явы... Это так же является причиной многих различий в Явы и Шарпа.... Уже просто тошнит от пропаганды! Топикстартер не интересовался офигительностью дотнета и сильверлайта. [/offtop] ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.05.2012, 23:07:03 |
|
||
|
Быстро перейти с С++ на Java
|
|||
|---|---|---|---|
|
#18+
ShSergeДа ну! И какие же оси Вы использовали? Я вот на многих осях проверял, но мне интересно было только виндовс и линух (убунту). Таки проверял. Однако, всё хорошо работает. Что хорошо работает ? Создание потока? Создает? Ну круто.... Только я говорил о том что на Линуксе и на Винде один и тот же кусок кода делает разные вещи... Да самое главное и сложно в могопоточности не создание потока или нити... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.05.2012, 23:11:02 |
|
||
|
Быстро перейти с С++ на Java
|
|||
|---|---|---|---|
|
#18+
riskЭто вы к чему скинули кусок кода? Это класс Executors, содержащий методы создания пулов потоков. Интерфейс ThreadFactory требует реализации метода с аргументом, реализующим Runnable. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.05.2012, 23:17:20 |
|
||
|
Быстро перейти с С++ на Java
|
|||
|---|---|---|---|
|
#18+
ivanov-voidriskЭто вы к чему скинули кусок кода? Это класс Executors, содержащий методы создания пулов потоков. Интерфейс ThreadFactory требует реализации метода с аргументом, реализующим Runnable. Зачем этот класс я в курсе, я не могу понять зачем вы его сюда приплели ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.05.2012, 23:44:44 |
|
||
|
Быстро перейти с С++ на Java
|
|||
|---|---|---|---|
|
#18+
avp.mk[offtop] risk+ ко всему надо отметить, что разрабочик Шарпа очень хорошо знал целевую ОС... в отличии от разработчика Явы... Это так же является причиной многих различий в Явы и Шарпа.... Уже просто тошнит от пропаганды! Топикстартер не интересовался офигительностью дотнета и сильверлайта. [/offtop] Какая нахер пропаганда ? Это детали технической реализации... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.05.2012, 23:45:36 |
|
||
|
Быстро перейти с С++ на Java
|
|||
|---|---|---|---|
|
#18+
Короче говоря, вот так лучше не делать - Код: java 1. 2. 3. 4. 5. 6. 7. , а реализовывать Runnable. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.05.2012, 23:48:34 |
|
||
|
Быстро перейти с С++ на Java
|
|||
|---|---|---|---|
|
#18+
riskЗачем этот класс я в курсе, я не могу понять зачем вы его сюда приплели ? Читайте внимательнее топик. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.05.2012, 23:52:12 |
|
||
|
Быстро перейти с С++ на Java
|
|||
|---|---|---|---|
|
#18+
ivanov-voidКороче говоря, вот так лучше не делать - Код: java 1. 2. 3. 4. 5. 6. 7. , а реализовывать Runnable. Да что вы говорите ? Интересно.... А можешь словами рассказать почему это? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.05.2012, 05:37:38 |
|
||
|
Быстро перейти с С++ на 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 |
|
||
|
Быстро перейти с С++ на Java
|
|||
|---|---|---|---|
|
#18+
chpashaавторРасширение Thread лишает возможности использования пулов. как предлагаешь понимать сие? Предлагаю понимать так: расширение Thread вносит двойственность в рантайм задачи, так что не всегда понятно то ли она выполнилась в пуле, то ли в потоке, который реализует. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.05.2012, 14:53:11 |
|
||
|
Быстро перейти с С++ на Java
|
|||
|---|---|---|---|
|
#18+
забыл никВы так умело придираетесь к чужим словам и неправильно сформулированным фразам... Вообще, технически ничего не мешает сделать самый верхний класс иерархии наследником Thread, а остальные наследовать от него, только это, конечно, глупость несусветная.если бы ничего не мешало, не плакались бы о множественном наследовании. достаточно базовому классу находится в библиотеке и уже приплыли. забыл никГде тут хоть слово про то, что "при наследовании от Thread нельзя юзать пул потоков."(c)? вот: ivanov-voidРасширение Thread лишает возможности использования пулов. прежде, чем ты скажешь, что это не ты сказал - да не ты, а он. а я ему возразил. а ты мне сказал, чтоб я его слушал и вообще пошел про concurrency почитал. забыл никавторя правильно понимаю, ты пять минут назад еще не знал, что Thread это Runnable, Спасибо что объяснил, лол:)на здоровье ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.05.2012, 14:56:55 |
|
||
|
Быстро перейти с С++ на Java
|
|||
|---|---|---|---|
|
#18+
chpashaivanov-voidРасширение Thread лишает возможности использования пулов. прежде, чем ты скажешь, что это не ты сказал - да не ты, а он. а я ему возразил. а ты мне сказал, чтоб я его слушал и вообще пошел про concurrency почитал. Ок, забей, да я тоже недосмотрел под чем подписываюсь ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.05.2012, 15:01:26 |
|
||
|
Быстро перейти с С++ на Java
|
|||
|---|---|---|---|
|
#18+
Резюмируя, возвращаю читателя к поправке, сделанной несколько позже, но, почему- то, оставшейся незамеченной, судя по тексту, последовавшему после нее: 12585516 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.05.2012, 16:02:07 |
|
||
|
Быстро перейти с С++ на Java
|
|||
|---|---|---|---|
|
#18+
ivanov-voidРезюмируя, возвращаю читателя к поправке не понятно, что автор хотел этим кодом сказать. налицо зависимость от класса SomeThread. То что этот класс наследует Thread из контекста не прослеживается, никакие свойства и методы Thread не вызываются, так где приведенный код зависит от Thread? Замените в классе SomeThread наследование на implements Runnable и исходный код никак не поменяется. В данном случае вредность наследования от Thread никак документально не подтверждается. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.05.2012, 16:47:46 |
|
||
|
Быстро перейти с С++ на Java
|
|||
|---|---|---|---|
|
#18+
Наследование классов приводит к сильной связности. Имеет смысл расширять Thread , если вы хотите изменить его поведение по- умолчанию, путем переопределения тех или иных методов. Без необходимости этого делать не следует. Реализация же интерфейса Runnable ведет к слабой связности. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.05.2012, 17:30:11 |
|
||
|
Быстро перейти с С++ на Java
|
|||
|---|---|---|---|
|
#18+
ivanov-voidРеализация же интерфейса Runnable ведет к слабой связности. Чего-чего? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.05.2012, 17:36:07 |
|
||
|
Быстро перейти с С++ на Java
|
|||
|---|---|---|---|
|
#18+
Более наглядный пример связности - создаем новые потоки и задачи . Для экземпляра Thread вызов метода run приводит к синхронному запуску потока , тогда как для экземпляра задачи просто выполняется метод . Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. Теперь что касается пулов. Далее в классе Executors для двух этих вызовов - Код: java 1. 2. 3. 4. 5. , конструируется новый поток следующим образом - Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. Т.е. смысла применять расширения Thread для пулов нет, а следовательно и сама возможность теряет смысл. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.05.2012, 00:21:09 |
|
||
|
Быстро перейти с С++ на Java
|
|||
|---|---|---|---|
|
#18+
ivanov-voidТ.е. смысла применять расширения Thread для пулов нет, а следовательно и сама возможность теряет смысл. Вы просто гениальны.... Спасибо что рассказали что thread pool юзает свои потоки для выполнения задач.... Еще откровения будут ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.05.2012, 01:16:52 |
|
||
|
Быстро перейти с С++ на Java
|
|||
|---|---|---|---|
|
#18+
thread.run не стартует поток. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.05.2012, 01:22:46 |
|
||
|
Быстро перейти с С++ на Java
|
|||
|---|---|---|---|
|
#18+
schwa, Да, вы правы, небольшая ремарка - в данном случае происходит синхронное выполнение двух методов, последовательно, в одном и том же потоке. Но, реализуя Runnable, я могу определить свой метод start(), и вызвать его в главном потоке; start() же экземпляра, наследующего Thread, запустит новый поток асинхронно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.05.2012, 03:34:37 |
|
||
|
Быстро перейти с С++ на Java
|
|||
|---|---|---|---|
|
#18+
В том, что Thread реализует Runnable нет никакого смысла, это просто еще один прикол в стандартной библиотеке. Никто не положит в thread в Executor. Также как и никто не будет никогда писать Runnable, который запускается не вызывом метода run. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.05.2012, 10:41:33 |
|
||
|
Быстро перейти с С++ на Java
|
|||
|---|---|---|---|
|
#18+
Никто не мешает реализовать Executor, который в зависимости от обстоятельств будет использовать Thread как Runnable или как Thread. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.05.2012, 10:53:04 |
|
||
|
Быстро перейти с С++ на Java
|
|||
|---|---|---|---|
|
#18+
ivanov-voidНо, реализуя Runnable, я могу определить свой метод start(), и вызвать его в главном потоке; start() же экземпляра, наследующего Thread, запустит новый поток асинхронно.Реализуя метод start, ты не можешь больше ссылаться на объект как на Runnable, а должен указывать его конкретный тип. И вот тут-то мы и получаем ту пресловутую связность. точно также мы не можем вызвать start у Thread не зная что это именно Thread. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.05.2012, 12:35:56 |
|
||
|
|

start [/forum/topic.php?all=1&fid=59&tid=2131750]: |
0ms |
get settings: |
18ms |
get forum list: |
27ms |
check forum access: |
6ms |
check topic access: |
6ms |
track hit: |
51ms |
get topic data: |
19ms |
get forum data: |
5ms |
get page messages: |
118ms |
get tp. blocked users: |
3ms |
| others: | 357ms |
| total: | 610ms |

| 0 / 0 |
