Top.Mail.Ru
? ?

Imageru_java


ru_java, posts by tag: threads - LiveJournal

все о языке программирования java


Entries by tag: threads

Видео материалы Юрия Ткача:JAVA для тестировщиков, JEE технологии...
каменяр, кирка
Imagekamen_jahr
На minus.com залиты видео материалы Юрия Ткача:
1. JAVA для тестировщиков - видео курс уже есть в ютубе и на торренте, залитое было выпилено с ютуба. Аннотация Юрия ТкачаCollapse )

дальше...Collapse )
2. JEE Технологии проектирования программных систем
 которые также есть в ютубе Аннотация
Юрия ТкачаCollapse )


Примечание поповоду отсутсвия 1х 4х лекцийCollapse )

video дальше...Collapse )

Можно ли сломать synchronized(this)?
Image
Imagedj_begemot
Когда-то давно, серфясь по исходникам стандартной библиотеки я был озадачен, почему сановские инженеры частенько используют для синхронизации приватные переменные, типа private final Object lock = new Object(), вместо this, или просто объявления метода как synchronized? Ладно бы еще им нужно было несколько разных блокировок -- но такая конструкция встречалась и там, где блокировка всего одна на объект. Потом я где-то прочитал, что синхронизация на this может нарушать инкапсуляцию объекта, поскольку в общем случае состояние монитора является частью состояния объекта, а если монитор -- сам объект, так ведь он доступен всем, кому не лень. Сходу я не смог подобрать пример возможных косяков, но в памяти отложилось. А недавно повторял основы синхронизации, и у меня родился такой пример. Хочу поделиться с сообществом -- вдруг для кого будет интересным.

дальше идет кодCollapse )
Tags: ,

Состояние потока после вызова Wait(Timeout)
Image
Imagebalmaster
Есть несколько потоков завязанных посредством synchronized на один и тот же объект 0x00007f6ccdc374c0
Все они кроме одного находятся в состоянии WAITING на получении блокировки на 0x00007f6ccdc374c0

Оставшийся поток, работает аналогично таймеру: делает полезную работу, затем выполняет Wait(timeout ) на 0x00007f6ccdc374c0
и так далее периодически.

callstack для данного потока
ВОПРОС: Почему поток находится в состоянии BLOCKED вместо WAITING?

"Thread-10" BLOCKED
"Thread-10" daemon prio=10 tid=0x0000000043c41800 nid=0x1aec waiting for monitor entry [0x00007f6cab4f3000]
java.lang.Thread.State: BLOCKED (on object monitor)
at java.lang.Object.wait(Native Method)
- waiting on <0x00007f6ccdc374c0> (a com.arjuna.ats.arjuna.coordinator.TransactionReaper)
at com.arjuna.ats.internal.arjuna.coordinator.ReaperThread.run(ReaperThread.java:98)
- locked <0x00007f6ccdc374c0> (a com.arjuna.ats.arjuna.coordinator.TransactionReaper)

Locked ownable synchronizers:
- None

ПС. Java 1.6 64bit OS: Debian

Tags: ,

Потоки: как отслеживать создание и завершение?
Image
Imagethe_very
Есть простой веб-краулер, который рекурсивно обходит все ссылки с некоторой страницы.
При однопоточном обходе всё просто и очевидно, но при многопоточном есть следующая проблема:
каждая ссылка стартует в новом потоке и хочется вывести обхода после завершения всех рабочих потоков. Ищу способ отслеживать эти потоки, кроме как Thread.activeCount()
При попытке посчитать стартующие и завершающиеся потоки через простой счётчик возникает проблема "медленно" стартующих потоков, подробностиCollapse )
Tags:

thread pool
Image
Imageezus
Здравствуйте.
У нас возникла потребность в использовании thread pool.
Какие инструменты Вы могли бы посоветовать?
Программа бежит в среде JBoss, но пока мы используем только его web-контейнер.
Спасибо.
Tags:

Image