Это приложение для Linux под названием JavaMutex, последний выпуск которого можно загрузить как JavaMutex-2017-04-09a.zip. Его можно запустить онлайн в бесплатном хостинг-провайдере OnWorks для рабочих станций.
Загрузите и запустите онлайн это приложение под названием JavaMutex с OnWorks бесплатно.
Следуйте этим инструкциям, чтобы запустить это приложение:
- 1. Загрузил это приложение на свой компьютер.
- 2. Введите в нашем файловом менеджере https://www.onworks.net/myfiles.php?username=XXXXX с желаемым именем пользователя.
- 3. Загрузите это приложение в такой файловый менеджер.
- 4. Запустите онлайн-эмулятор OnWorks Linux или Windows или онлайн-эмулятор MACOS с этого веб-сайта.
- 5. В только что запущенной ОС OnWorks Linux перейдите в наш файловый менеджер https://www.onworks.net/myfiles.php?username=XXXXX с желаемым именем пользователя.
- 6. Скачайте приложение, установите его и запустите.
JavaMutex
Ad
ОПИСАНИЕ
Свободно распространяемый открытый исходный код, 100% чистая Java для взаимного исключения. Блокировка повторного входа для чтения-записи и только для чтения, условная переменная, атомарные оболочки для логических, целочисленных, длинных и ссылочных значений. Пул ячеек с опциональной блокировкой, объектный обменник, Intersect.Особенности
- 100% чистая Java; требует поддержки Java SE 8 для лямбда-выражений.
- Не полагается на собственные внутренние реализации JVM или внутренние структуры данных JVM (в отличие от реализации Oracle пакетов java.util.concurrent. *).
- Поддерживает экземпляры java.util.concurrent.locks Lock, ReadWriteLock и Condition, чтение-запись и только чтение.
- Поддерживает java.util.concurrent.atomic AtomicBoolean, AtomicInteger, AtomicLong, AtomicReference, AtomicMarkedReference, AtomicStampedReference. Добавляет больше функциональности.
- Поддерживает java.util.concurrent Exchanger, Semaphore. Добавляет класс ExchangerPool.
- Включает новые интерфейсы и классы для взаимного исключения и параллельной обработки.
- Новый протокол взаимного исключения Intersect / Pathway.
- Новый API SpinLock для быстрого обновления изменчивых полей.
- Новая операция SpinLockOperation для общих операций атомарной выборки и сохранения при удержании SpinLock.
- Новые классы примеров двусвязных списков SpinLockList, SpinLockNode для доступа к SpinLockOperation.
- Новые атомарные оболочки для использования SpinLock.
- Новые изменчивые оболочки для использования SpinLockOperation.
- SpinLockList поддерживает интерфейсы Iterable, Iterator, ListIterator.
- Новые интерфейсы LatchFactory, LockFactory, ReenterableLockFactory, ReenterableDualLockFactory.
- Новый интерфейс IntersectFactory и методы дозатора в IntersectLatch, IntersectLimited.
- Новая парадигма ConditionClosure применяется к блокировкам и пересечениям для поддержки переменных состояния.
- Новый API ReenterableLockAvailable для уведомления клиента о полном освобождении ReenterableLock.
- Добавлены CountDownLatch и CyclicBarrier с дополнительными удобными методами.
- Добавлен TrafficBarrier в качестве барьера потока, имитирующего транспортную развязку.
- Добавлен TransferPipe для односторонних разработок производителя и потребителя.
- Добавлен класс SynchronousQueue и интерфейсы TransceivePipe, TransmitPipe, ReceivePipe (и фабрики).
- Добавлены EventToken и EventTokenSet для потока, ожидающего одного или нескольких событий в одном или нескольких рабочих потоках.
- Добавлен параллельный пакет для простых пулов рабочих потоков.
- FutureWork класс для выполнения экземпляров Callable.
- Включает образец TestMultiServer для демонстрации серверов модульных потоков без тупиков с использованием EventTokenSet. Примеры серверов свободны от блокировок даже при запросе данных с других серверов.
- Поддержка ExecutorService, ScheduledExecutorService, CompletionService.
- Включает образец решения Dining Philosophers с использованием программного обеспечения SpinLock API без взаимоблокировок и зависаний.
- Интерфейс ExtendedLock для вызова методов функционального интерфейса при удерживании Lock.
- Добавьте SpeedLock и друзей в пакет замков. Когда приложение имеет фиксированное количество потоков, SpeedLock предлагает очень высокую производительность для захвата и снятия блокировки.
- SpeedLock основан на SpinLockOperation.
- SpeedLockPool - это замок с внутренним пулом экземпляров SpeedLock. SpeedLockPool может использоваться неограниченным количеством потоков для очень высокой производительности блокировки.
- SpeedLockDual поддерживает варианты чтения-записи и только для чтения.
- SpeedLockDualPool управляет пулом SpeedLockDual для доступа неограниченного количества одновременных потоков.
- Служебный класс SpeedLocks с методами распределения для различных типов SpeedLock и заводов.
Аудитория
Застройщики
Язык программирования
Java
Это приложение также можно загрузить с https://sourceforge.net/projects/javamutex/. Он размещен в OnWorks, чтобы его можно было легко запускать в Интернете с помощью одной из наших бесплатных операционных систем.