Как стать автором
Обновить

Комментарии 29

Мне кажется, что байнд и приложения на Яве несколько отличаются по своим задачам и методикам воплощения задач. Что общего в данном аспекте между Явой и байндом судить не берусь. Книга Java Threads издательства O'Reilly когда-то помогла мне составить некоторое представление о мультипоточности в Яве. Если неохота покупать книги, можно почитать краткое описание от Sun. Часто начинающие программисты на Яве пишут свои модули по управлению распределением задач. Как правило, позже они все-таки переходят на использование вложенных средств.

С уважением, S.
На Яве не пишут dns серверов? bind9 в своё время был отличным пособием для тех кому во сне почудилось о том что если они сейчас всё перепишут под «ExecutorService'ы», то заработает быстрее, а не наоборот.
И не вижу ничего плохого в том что люди начинают писать свои велосипеды в жава. Одни только ScheduledExecutor'ы чего стоят, которые частенько используют для реализации таймеров: O(log n) — добавление, O(n) — удаление.
для практиков (и не только) есть Java Concurrency in Practice, ставшее уже почти классикой
после этих классических трудов приходиться сталкиваться с людьми, которые путают concurrency и parallelism. Для изучения concurrency лучше посылать куда-нибудь в plan9 :)
1. По AtomicLong не нужно синхронизироваться. На то он и атомик
2. Какое отношение количество процессоров имеет к количеству рабочих потоков? Для двух потоков вам и десятой части процессора хватит
2. Наверное, то отношение, что в общем случае количество одновременно выполняемых потоков не превышает количество процессоров?
1. Воистину. Думал о другом. Исправил)
2. Смотря что за процессор и как у него с HyperThreading'ом. Например, на одной из одноядерных машин, на которой проводили тесты, два потока работали дико медленно.
Синхронизация при помощи ReentrantLock, если она происходит без проблем (потоки не столкнулись) — почти бесплатна.

Фактически, на lock/unlock там изменяется одна int-переменная.

Но если один Lock решили поменять две нитки одновременно — тогда проблемы, да — парковка нитки и прочие накладные расходы.
НЛО прилетело и опубликовало эту надпись здесь
НЛО прилетело и опубликовало эту надпись здесь
С точки зрения jvm нет разницы, сколько ядер у вашего процессора
НЛО прилетело и опубликовало эту надпись здесь
Что именно тут «трава»?
НЛО прилетело и опубликовало эту надпись здесь
А может это стринг? :)
НЛО прилетело и опубликовало эту надпись здесь
НЛО прилетело и опубликовало эту надпись здесь
Не каждый поток постоянно дёргает очередь(синхронизованная операция), а потокам исполнитель раздаёт задания.
НЛО прилетело и опубликовало эту надпись здесь
> use scala, Luke

fixed. Мы же всё-таки о Java говорим.
> Joshua Blosh
Joshua Bloch
Атомарность доступа на значения типа long и double гарантируется, если описания переменных снабдить признаком volatile.
догоняясь =)
начиная с java 1.5, но у слова волатайл есть более сильный момент — а именно синхронизация TLS с основной памятью! а это исключительно дорого! java.sun.com/docs/books/jls/second_edition/html/memory.doc.html#28330 Less formally: actions on the master copies of volatile variables on behalf of a thread are performed by the main memory in exactly the order that the thread requested.
НЛО прилетело и опубликовало эту надпись здесь
НЛО прилетело и опубликовало эту надпись здесь
Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.