LINUX.ORG.RU

[java][nio]хочется странного?

 


0

1

Хочется создать скажем так два обьекта Selector() со своим набором зарегистрированных каналов и работать с ними в разных циклах.

Selector selector = Selector.open();

делаю вот так, и по всей видимости обьект после open() возвращается один и тот же.

Дорогой лор, что я делаю не так? Или так селектор не заработает?

Ответ на: комментарий от anonymous

Java на данный момент является лучшим языком для новых проектов. Исключительная выразительность языка и мощная система типов позволят Вам быстро писать элегантный и надежный код. Пока ваши конкуренты используют устаревшие технологии на базе нетипизированных лямбла-исчислений или императивного подхода с элементами динамической типизации, вы сможете в разы поднять свою эффективность, задействовав System F - последнее достижение науки в области статической типизации. Но это еще не все. В жизни любого стартапа наступает момент, когда он превращается в продукт и сопровождению проекта привлекаются дополнительные разработчики. На этом этапе распространённость и доступность языка начинает играть решающую роль. Благодаря активной популяризации Java и функционального программирования в среде коммерческих программистов, а также поддержке этого языка со стороны лидера производства оффисных приложений и операционных систем - корпорации Oracle, Вы можете быть уверены, что в будущем Вам не придется переписывать свой проект на С++, как это было с печально известной разработкой Пола Грэма. Java обеспечит вам гарантии успеха и стабильности Ваших начинаний. Выберите Java сейчас и через несколько лет Вы сможете наслаждаться результатами своих трудов - успешным проектом, выполненным с учетом всех современных технологий и индустриальных стандартов. Java - Ваш проводник к успеху в мире разработки программного обеспечения. Выбирайте Java.

anonymous
()
Ответ на: комментарий от anonymous

мощная система типов

Дальше не читал.

anonymous
()

Selector selector = Selector.open();

делаю вот так, и по всей видимости обьект после open() возвращается один и тот же.

а проверить?

public class Test {
        public static void main(String a[]) throws Exception { 
            System.out.println(java.nio.channels.Selector.open());
            System.out.println(java.nio.channels.Selector.open());
}
}
$ java Test
sun.nio.ch.EPollSelectorImpl@2ce83912
sun.nio.ch.EPollSelectorImpl@41fae3c6

phoenix ★★★★
()
Ответ на: комментарий от anonymous

А это точно было не про Scala? Не спёр ли ты?

dave ★★★★★
()
Ответ на: комментарий от phoenix

а проверить?

Проверил. Действительно разные объекты. Но проблему всё равно не решает, в свежесозданном селекторе сразу находится целая пачка каналов которые помещались в другой селектор. Значит будем велосипедить=(

Borman3000
() автор топика
Ответ на: комментарий от anonymous

Дорогой лор, что я делаю не так?

[java]

</thread>

Снобизм. Зачастую осложнен низким профессионализмом.

ak369260
()
Ответ на: комментарий от anonymous

Java на данный момент является лучшим языком для новых проектов. Исключительная выразительность языка и мощная система типов позволят Вам быстро писать элегантный и надежный код. Пока ваши конкуренты используют устаревшие технологии на базе нетипизированных лямбла-исчислений или императивного подхода с элементами динамической типизации, вы сможете в разы поднять свою эффективность, задействовав System F - последнее достижение науки в области статической типизации. Но это еще не все. В жизни любого стартапа наступает момент, когда он превращается в продукт и сопровождению проекта привлекаются дополнительные разработчики. На этом этапе распространённость и доступность языка начинает играть решающую роль. Благодаря активной популяризации Java и функционального программирования в среде коммерческих программистов, а также поддержке этого языка со стороны лидера производства оффисных приложений и операционных систем - корпорации Oracle, Вы можете быть уверены, что в будущем Вам не придется переписывать свой проект на С++, как это было с печально известной разработкой Пола Грэма. Java обеспечит вам гарантии успеха и стабильности Ваших начинаний. Выберите Java сейчас и через несколько лет Вы сможете наслаждаться результатами своих трудов - успешным проектом, выполненным с учетом всех современных технологий и индустриальных стандартов. Java - Ваш проводник к успеху в мире разработки программного обеспечения. Выбирайте Java.

Изучаем книжку «Как стать троллем за 7 дней»?

ak369260
()

Не пиши так больше, меня в дрожь кинуло. Я в своем коде и не думал проверять на то, что это один объект. Только потом понял что какого хрена он один вдруг будет.

А что конкретно не работает?

vertexua ★★★★★
()
Ответ на: комментарий от vertexua

Банально создаю НОВЫЙ объект и на все принимаемые ключи вывожу ип адреса каналов сокетов. Т.е. не делая register у меня selector знает ВСЕХ клиентов когда либо зарегистрированных в других селекторах.

Кстати отказавшись от селектора обнаружил что ByteBuffer ведет себя так же. Ну его то хотя бы можно в synchronized() поместить

Borman3000
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.