├── .gitignore ├── LICENSE ├── README.md ├── akka-intro ├── build.sbt └── src │ └── main │ └── scala │ └── com │ └── concurrency │ └── book │ ├── chapter07 │ ├── AsynchronousComputation1.scala │ ├── BlockingFutures.scala │ ├── CountListElems.scala │ ├── Eval.scala │ ├── FutWithDefaultContext.scala │ ├── FutWithMyContext.scala │ ├── FutureWithForComprehension.scala │ ├── ListOps.scala │ ├── StringsAreImmutable.java │ ├── SynchronousExecution.scala │ ├── TryAsAMonad.scala │ └── UnmodifiableWrappers.java │ └── chapter08 │ ├── ActorTestAsk.scala │ ├── ActorToActorAsk.scala │ ├── ActorToActorTell.scala │ ├── CountElems.scala │ ├── CountMessagesActor.scala │ ├── HandlesOnlyFiveMessages.scala │ ├── ImmutableState.scala │ ├── MultipleActorsHittingOneActor.scala │ ├── MyActor.scala │ ├── PipeToActor.scala │ ├── Supervisor.scala │ ├── ThousandsOfActors.scala │ └── UnhandledMsgActor.scala ├── pom.xml └── src └── main ├── java └── com │ └── concurrency │ └── book │ ├── Utils │ └── ThreadUtils.java │ ├── chapter02 │ ├── ClassInit.java │ ├── FinalVisibility.java │ ├── ImprovedMyLock.java │ ├── LazyInitialization.java │ ├── MyLock.java │ ├── NoLocksCounter.java │ ├── VarsThrSafety.java │ └── com │ │ └── linkedlist │ │ ├── ConcurrentQueue.java │ │ ├── ConcurrentSet.java │ │ └── FGConcurrentSet.java │ ├── chapter03 │ ├── AppCyclicBarrier.java │ ├── AppFutureTask.java │ ├── BrittleBuffer.java │ ├── BrittleBuffer1.java │ ├── BrittleBuffer2.java │ ├── BufEmptyException.java │ ├── BufFullException.java │ ├── Buffer.java │ ├── CappedBuffer.java │ ├── FairReadWriteLock.java │ ├── MyCountDownLatch.java │ ├── RWLock.java │ ├── RWMap.java │ ├── ReadWriteLock.java │ ├── Semaphore.java │ └── YetAnotherReentrantLock.java │ ├── chapter04 │ ├── EgrepWord.java │ ├── EgrepWord1.java │ ├── ExampleThreadPool.java │ ├── InPlaceFJQuickSort.java │ ├── QuickSortForkJoin.java │ ├── TaskStealingThread.java │ ├── ThreadInterruption.java │ ├── TryMaps.java │ ├── WordCount.java │ ├── WordCount1.java │ ├── WordFreqCounter.java │ ├── WrapperObject.java │ └── mypool │ │ ├── MyPoolThread.java │ │ ├── MyThreadPool.java │ │ └── WordCountUsingMyThreadPool.java │ └── chapter05 │ ├── BigLockHashSet.java │ ├── HashSet.java │ ├── LockFreeStack.java │ ├── LockStripedHashSet.java │ ├── NoLocksQueue.java │ ├── QueueIsEmptyException.java │ ├── ThreadSafeQueue.java │ ├── TryAtomicReference.java │ ├── TryAtomicStampedReference.java │ └── TryThreadLocal.java └── resources ├── dir1 ├── dir2 │ └── file2.txt └── file1.txt └── input.txt /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Concurrent-Patterns-and-Best-Practices/HEAD/.gitignore -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Concurrent-Patterns-and-Best-Practices/HEAD/LICENSE -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Concurrent-Patterns-and-Best-Practices/HEAD/README.md -------------------------------------------------------------------------------- /akka-intro/build.sbt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Concurrent-Patterns-and-Best-Practices/HEAD/akka-intro/build.sbt -------------------------------------------------------------------------------- /akka-intro/src/main/scala/com/concurrency/book/chapter07/AsynchronousComputation1.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Concurrent-Patterns-and-Best-Practices/HEAD/akka-intro/src/main/scala/com/concurrency/book/chapter07/AsynchronousComputation1.scala -------------------------------------------------------------------------------- /akka-intro/src/main/scala/com/concurrency/book/chapter07/BlockingFutures.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Concurrent-Patterns-and-Best-Practices/HEAD/akka-intro/src/main/scala/com/concurrency/book/chapter07/BlockingFutures.scala -------------------------------------------------------------------------------- /akka-intro/src/main/scala/com/concurrency/book/chapter07/CountListElems.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Concurrent-Patterns-and-Best-Practices/HEAD/akka-intro/src/main/scala/com/concurrency/book/chapter07/CountListElems.scala -------------------------------------------------------------------------------- /akka-intro/src/main/scala/com/concurrency/book/chapter07/Eval.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Concurrent-Patterns-and-Best-Practices/HEAD/akka-intro/src/main/scala/com/concurrency/book/chapter07/Eval.scala -------------------------------------------------------------------------------- /akka-intro/src/main/scala/com/concurrency/book/chapter07/FutWithDefaultContext.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Concurrent-Patterns-and-Best-Practices/HEAD/akka-intro/src/main/scala/com/concurrency/book/chapter07/FutWithDefaultContext.scala -------------------------------------------------------------------------------- /akka-intro/src/main/scala/com/concurrency/book/chapter07/FutWithMyContext.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Concurrent-Patterns-and-Best-Practices/HEAD/akka-intro/src/main/scala/com/concurrency/book/chapter07/FutWithMyContext.scala -------------------------------------------------------------------------------- /akka-intro/src/main/scala/com/concurrency/book/chapter07/FutureWithForComprehension.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Concurrent-Patterns-and-Best-Practices/HEAD/akka-intro/src/main/scala/com/concurrency/book/chapter07/FutureWithForComprehension.scala -------------------------------------------------------------------------------- /akka-intro/src/main/scala/com/concurrency/book/chapter07/ListOps.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Concurrent-Patterns-and-Best-Practices/HEAD/akka-intro/src/main/scala/com/concurrency/book/chapter07/ListOps.scala -------------------------------------------------------------------------------- /akka-intro/src/main/scala/com/concurrency/book/chapter07/StringsAreImmutable.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Concurrent-Patterns-and-Best-Practices/HEAD/akka-intro/src/main/scala/com/concurrency/book/chapter07/StringsAreImmutable.java -------------------------------------------------------------------------------- /akka-intro/src/main/scala/com/concurrency/book/chapter07/SynchronousExecution.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Concurrent-Patterns-and-Best-Practices/HEAD/akka-intro/src/main/scala/com/concurrency/book/chapter07/SynchronousExecution.scala -------------------------------------------------------------------------------- /akka-intro/src/main/scala/com/concurrency/book/chapter07/TryAsAMonad.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Concurrent-Patterns-and-Best-Practices/HEAD/akka-intro/src/main/scala/com/concurrency/book/chapter07/TryAsAMonad.scala -------------------------------------------------------------------------------- /akka-intro/src/main/scala/com/concurrency/book/chapter07/UnmodifiableWrappers.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Concurrent-Patterns-and-Best-Practices/HEAD/akka-intro/src/main/scala/com/concurrency/book/chapter07/UnmodifiableWrappers.java -------------------------------------------------------------------------------- /akka-intro/src/main/scala/com/concurrency/book/chapter08/ActorTestAsk.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Concurrent-Patterns-and-Best-Practices/HEAD/akka-intro/src/main/scala/com/concurrency/book/chapter08/ActorTestAsk.scala -------------------------------------------------------------------------------- /akka-intro/src/main/scala/com/concurrency/book/chapter08/ActorToActorAsk.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Concurrent-Patterns-and-Best-Practices/HEAD/akka-intro/src/main/scala/com/concurrency/book/chapter08/ActorToActorAsk.scala -------------------------------------------------------------------------------- /akka-intro/src/main/scala/com/concurrency/book/chapter08/ActorToActorTell.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Concurrent-Patterns-and-Best-Practices/HEAD/akka-intro/src/main/scala/com/concurrency/book/chapter08/ActorToActorTell.scala -------------------------------------------------------------------------------- /akka-intro/src/main/scala/com/concurrency/book/chapter08/CountElems.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Concurrent-Patterns-and-Best-Practices/HEAD/akka-intro/src/main/scala/com/concurrency/book/chapter08/CountElems.scala -------------------------------------------------------------------------------- /akka-intro/src/main/scala/com/concurrency/book/chapter08/CountMessagesActor.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Concurrent-Patterns-and-Best-Practices/HEAD/akka-intro/src/main/scala/com/concurrency/book/chapter08/CountMessagesActor.scala -------------------------------------------------------------------------------- /akka-intro/src/main/scala/com/concurrency/book/chapter08/HandlesOnlyFiveMessages.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Concurrent-Patterns-and-Best-Practices/HEAD/akka-intro/src/main/scala/com/concurrency/book/chapter08/HandlesOnlyFiveMessages.scala -------------------------------------------------------------------------------- /akka-intro/src/main/scala/com/concurrency/book/chapter08/ImmutableState.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Concurrent-Patterns-and-Best-Practices/HEAD/akka-intro/src/main/scala/com/concurrency/book/chapter08/ImmutableState.scala -------------------------------------------------------------------------------- /akka-intro/src/main/scala/com/concurrency/book/chapter08/MultipleActorsHittingOneActor.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Concurrent-Patterns-and-Best-Practices/HEAD/akka-intro/src/main/scala/com/concurrency/book/chapter08/MultipleActorsHittingOneActor.scala -------------------------------------------------------------------------------- /akka-intro/src/main/scala/com/concurrency/book/chapter08/MyActor.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Concurrent-Patterns-and-Best-Practices/HEAD/akka-intro/src/main/scala/com/concurrency/book/chapter08/MyActor.scala -------------------------------------------------------------------------------- /akka-intro/src/main/scala/com/concurrency/book/chapter08/PipeToActor.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Concurrent-Patterns-and-Best-Practices/HEAD/akka-intro/src/main/scala/com/concurrency/book/chapter08/PipeToActor.scala -------------------------------------------------------------------------------- /akka-intro/src/main/scala/com/concurrency/book/chapter08/Supervisor.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Concurrent-Patterns-and-Best-Practices/HEAD/akka-intro/src/main/scala/com/concurrency/book/chapter08/Supervisor.scala -------------------------------------------------------------------------------- /akka-intro/src/main/scala/com/concurrency/book/chapter08/ThousandsOfActors.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Concurrent-Patterns-and-Best-Practices/HEAD/akka-intro/src/main/scala/com/concurrency/book/chapter08/ThousandsOfActors.scala -------------------------------------------------------------------------------- /akka-intro/src/main/scala/com/concurrency/book/chapter08/UnhandledMsgActor.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Concurrent-Patterns-and-Best-Practices/HEAD/akka-intro/src/main/scala/com/concurrency/book/chapter08/UnhandledMsgActor.scala -------------------------------------------------------------------------------- /pom.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Concurrent-Patterns-and-Best-Practices/HEAD/pom.xml -------------------------------------------------------------------------------- /src/main/java/com/concurrency/book/Utils/ThreadUtils.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Concurrent-Patterns-and-Best-Practices/HEAD/src/main/java/com/concurrency/book/Utils/ThreadUtils.java -------------------------------------------------------------------------------- /src/main/java/com/concurrency/book/chapter02/ClassInit.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Concurrent-Patterns-and-Best-Practices/HEAD/src/main/java/com/concurrency/book/chapter02/ClassInit.java -------------------------------------------------------------------------------- /src/main/java/com/concurrency/book/chapter02/FinalVisibility.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Concurrent-Patterns-and-Best-Practices/HEAD/src/main/java/com/concurrency/book/chapter02/FinalVisibility.java -------------------------------------------------------------------------------- /src/main/java/com/concurrency/book/chapter02/ImprovedMyLock.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Concurrent-Patterns-and-Best-Practices/HEAD/src/main/java/com/concurrency/book/chapter02/ImprovedMyLock.java -------------------------------------------------------------------------------- /src/main/java/com/concurrency/book/chapter02/LazyInitialization.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Concurrent-Patterns-and-Best-Practices/HEAD/src/main/java/com/concurrency/book/chapter02/LazyInitialization.java -------------------------------------------------------------------------------- /src/main/java/com/concurrency/book/chapter02/MyLock.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Concurrent-Patterns-and-Best-Practices/HEAD/src/main/java/com/concurrency/book/chapter02/MyLock.java -------------------------------------------------------------------------------- /src/main/java/com/concurrency/book/chapter02/NoLocksCounter.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Concurrent-Patterns-and-Best-Practices/HEAD/src/main/java/com/concurrency/book/chapter02/NoLocksCounter.java -------------------------------------------------------------------------------- /src/main/java/com/concurrency/book/chapter02/VarsThrSafety.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Concurrent-Patterns-and-Best-Practices/HEAD/src/main/java/com/concurrency/book/chapter02/VarsThrSafety.java -------------------------------------------------------------------------------- /src/main/java/com/concurrency/book/chapter02/com/linkedlist/ConcurrentQueue.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Concurrent-Patterns-and-Best-Practices/HEAD/src/main/java/com/concurrency/book/chapter02/com/linkedlist/ConcurrentQueue.java -------------------------------------------------------------------------------- /src/main/java/com/concurrency/book/chapter02/com/linkedlist/ConcurrentSet.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Concurrent-Patterns-and-Best-Practices/HEAD/src/main/java/com/concurrency/book/chapter02/com/linkedlist/ConcurrentSet.java -------------------------------------------------------------------------------- /src/main/java/com/concurrency/book/chapter02/com/linkedlist/FGConcurrentSet.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Concurrent-Patterns-and-Best-Practices/HEAD/src/main/java/com/concurrency/book/chapter02/com/linkedlist/FGConcurrentSet.java -------------------------------------------------------------------------------- /src/main/java/com/concurrency/book/chapter03/AppCyclicBarrier.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Concurrent-Patterns-and-Best-Practices/HEAD/src/main/java/com/concurrency/book/chapter03/AppCyclicBarrier.java -------------------------------------------------------------------------------- /src/main/java/com/concurrency/book/chapter03/AppFutureTask.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Concurrent-Patterns-and-Best-Practices/HEAD/src/main/java/com/concurrency/book/chapter03/AppFutureTask.java -------------------------------------------------------------------------------- /src/main/java/com/concurrency/book/chapter03/BrittleBuffer.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Concurrent-Patterns-and-Best-Practices/HEAD/src/main/java/com/concurrency/book/chapter03/BrittleBuffer.java -------------------------------------------------------------------------------- /src/main/java/com/concurrency/book/chapter03/BrittleBuffer1.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Concurrent-Patterns-and-Best-Practices/HEAD/src/main/java/com/concurrency/book/chapter03/BrittleBuffer1.java -------------------------------------------------------------------------------- /src/main/java/com/concurrency/book/chapter03/BrittleBuffer2.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Concurrent-Patterns-and-Best-Practices/HEAD/src/main/java/com/concurrency/book/chapter03/BrittleBuffer2.java -------------------------------------------------------------------------------- /src/main/java/com/concurrency/book/chapter03/BufEmptyException.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Concurrent-Patterns-and-Best-Practices/HEAD/src/main/java/com/concurrency/book/chapter03/BufEmptyException.java -------------------------------------------------------------------------------- /src/main/java/com/concurrency/book/chapter03/BufFullException.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Concurrent-Patterns-and-Best-Practices/HEAD/src/main/java/com/concurrency/book/chapter03/BufFullException.java -------------------------------------------------------------------------------- /src/main/java/com/concurrency/book/chapter03/Buffer.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Concurrent-Patterns-and-Best-Practices/HEAD/src/main/java/com/concurrency/book/chapter03/Buffer.java -------------------------------------------------------------------------------- /src/main/java/com/concurrency/book/chapter03/CappedBuffer.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Concurrent-Patterns-and-Best-Practices/HEAD/src/main/java/com/concurrency/book/chapter03/CappedBuffer.java -------------------------------------------------------------------------------- /src/main/java/com/concurrency/book/chapter03/FairReadWriteLock.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Concurrent-Patterns-and-Best-Practices/HEAD/src/main/java/com/concurrency/book/chapter03/FairReadWriteLock.java -------------------------------------------------------------------------------- /src/main/java/com/concurrency/book/chapter03/MyCountDownLatch.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Concurrent-Patterns-and-Best-Practices/HEAD/src/main/java/com/concurrency/book/chapter03/MyCountDownLatch.java -------------------------------------------------------------------------------- /src/main/java/com/concurrency/book/chapter03/RWLock.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Concurrent-Patterns-and-Best-Practices/HEAD/src/main/java/com/concurrency/book/chapter03/RWLock.java -------------------------------------------------------------------------------- /src/main/java/com/concurrency/book/chapter03/RWMap.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Concurrent-Patterns-and-Best-Practices/HEAD/src/main/java/com/concurrency/book/chapter03/RWMap.java -------------------------------------------------------------------------------- /src/main/java/com/concurrency/book/chapter03/ReadWriteLock.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Concurrent-Patterns-and-Best-Practices/HEAD/src/main/java/com/concurrency/book/chapter03/ReadWriteLock.java -------------------------------------------------------------------------------- /src/main/java/com/concurrency/book/chapter03/Semaphore.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Concurrent-Patterns-and-Best-Practices/HEAD/src/main/java/com/concurrency/book/chapter03/Semaphore.java -------------------------------------------------------------------------------- /src/main/java/com/concurrency/book/chapter03/YetAnotherReentrantLock.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Concurrent-Patterns-and-Best-Practices/HEAD/src/main/java/com/concurrency/book/chapter03/YetAnotherReentrantLock.java -------------------------------------------------------------------------------- /src/main/java/com/concurrency/book/chapter04/EgrepWord.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Concurrent-Patterns-and-Best-Practices/HEAD/src/main/java/com/concurrency/book/chapter04/EgrepWord.java -------------------------------------------------------------------------------- /src/main/java/com/concurrency/book/chapter04/EgrepWord1.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Concurrent-Patterns-and-Best-Practices/HEAD/src/main/java/com/concurrency/book/chapter04/EgrepWord1.java -------------------------------------------------------------------------------- /src/main/java/com/concurrency/book/chapter04/ExampleThreadPool.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Concurrent-Patterns-and-Best-Practices/HEAD/src/main/java/com/concurrency/book/chapter04/ExampleThreadPool.java -------------------------------------------------------------------------------- /src/main/java/com/concurrency/book/chapter04/InPlaceFJQuickSort.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Concurrent-Patterns-and-Best-Practices/HEAD/src/main/java/com/concurrency/book/chapter04/InPlaceFJQuickSort.java -------------------------------------------------------------------------------- /src/main/java/com/concurrency/book/chapter04/QuickSortForkJoin.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Concurrent-Patterns-and-Best-Practices/HEAD/src/main/java/com/concurrency/book/chapter04/QuickSortForkJoin.java -------------------------------------------------------------------------------- /src/main/java/com/concurrency/book/chapter04/TaskStealingThread.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Concurrent-Patterns-and-Best-Practices/HEAD/src/main/java/com/concurrency/book/chapter04/TaskStealingThread.java -------------------------------------------------------------------------------- /src/main/java/com/concurrency/book/chapter04/ThreadInterruption.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Concurrent-Patterns-and-Best-Practices/HEAD/src/main/java/com/concurrency/book/chapter04/ThreadInterruption.java -------------------------------------------------------------------------------- /src/main/java/com/concurrency/book/chapter04/TryMaps.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Concurrent-Patterns-and-Best-Practices/HEAD/src/main/java/com/concurrency/book/chapter04/TryMaps.java -------------------------------------------------------------------------------- /src/main/java/com/concurrency/book/chapter04/WordCount.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Concurrent-Patterns-and-Best-Practices/HEAD/src/main/java/com/concurrency/book/chapter04/WordCount.java -------------------------------------------------------------------------------- /src/main/java/com/concurrency/book/chapter04/WordCount1.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Concurrent-Patterns-and-Best-Practices/HEAD/src/main/java/com/concurrency/book/chapter04/WordCount1.java -------------------------------------------------------------------------------- /src/main/java/com/concurrency/book/chapter04/WordFreqCounter.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Concurrent-Patterns-and-Best-Practices/HEAD/src/main/java/com/concurrency/book/chapter04/WordFreqCounter.java -------------------------------------------------------------------------------- /src/main/java/com/concurrency/book/chapter04/WrapperObject.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Concurrent-Patterns-and-Best-Practices/HEAD/src/main/java/com/concurrency/book/chapter04/WrapperObject.java -------------------------------------------------------------------------------- /src/main/java/com/concurrency/book/chapter04/mypool/MyPoolThread.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Concurrent-Patterns-and-Best-Practices/HEAD/src/main/java/com/concurrency/book/chapter04/mypool/MyPoolThread.java -------------------------------------------------------------------------------- /src/main/java/com/concurrency/book/chapter04/mypool/MyThreadPool.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Concurrent-Patterns-and-Best-Practices/HEAD/src/main/java/com/concurrency/book/chapter04/mypool/MyThreadPool.java -------------------------------------------------------------------------------- /src/main/java/com/concurrency/book/chapter04/mypool/WordCountUsingMyThreadPool.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Concurrent-Patterns-and-Best-Practices/HEAD/src/main/java/com/concurrency/book/chapter04/mypool/WordCountUsingMyThreadPool.java -------------------------------------------------------------------------------- /src/main/java/com/concurrency/book/chapter05/BigLockHashSet.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Concurrent-Patterns-and-Best-Practices/HEAD/src/main/java/com/concurrency/book/chapter05/BigLockHashSet.java -------------------------------------------------------------------------------- /src/main/java/com/concurrency/book/chapter05/HashSet.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Concurrent-Patterns-and-Best-Practices/HEAD/src/main/java/com/concurrency/book/chapter05/HashSet.java -------------------------------------------------------------------------------- /src/main/java/com/concurrency/book/chapter05/LockFreeStack.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Concurrent-Patterns-and-Best-Practices/HEAD/src/main/java/com/concurrency/book/chapter05/LockFreeStack.java -------------------------------------------------------------------------------- /src/main/java/com/concurrency/book/chapter05/LockStripedHashSet.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Concurrent-Patterns-and-Best-Practices/HEAD/src/main/java/com/concurrency/book/chapter05/LockStripedHashSet.java -------------------------------------------------------------------------------- /src/main/java/com/concurrency/book/chapter05/NoLocksQueue.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Concurrent-Patterns-and-Best-Practices/HEAD/src/main/java/com/concurrency/book/chapter05/NoLocksQueue.java -------------------------------------------------------------------------------- /src/main/java/com/concurrency/book/chapter05/QueueIsEmptyException.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Concurrent-Patterns-and-Best-Practices/HEAD/src/main/java/com/concurrency/book/chapter05/QueueIsEmptyException.java -------------------------------------------------------------------------------- /src/main/java/com/concurrency/book/chapter05/ThreadSafeQueue.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Concurrent-Patterns-and-Best-Practices/HEAD/src/main/java/com/concurrency/book/chapter05/ThreadSafeQueue.java -------------------------------------------------------------------------------- /src/main/java/com/concurrency/book/chapter05/TryAtomicReference.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Concurrent-Patterns-and-Best-Practices/HEAD/src/main/java/com/concurrency/book/chapter05/TryAtomicReference.java -------------------------------------------------------------------------------- /src/main/java/com/concurrency/book/chapter05/TryAtomicStampedReference.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Concurrent-Patterns-and-Best-Practices/HEAD/src/main/java/com/concurrency/book/chapter05/TryAtomicStampedReference.java -------------------------------------------------------------------------------- /src/main/java/com/concurrency/book/chapter05/TryThreadLocal.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Concurrent-Patterns-and-Best-Practices/HEAD/src/main/java/com/concurrency/book/chapter05/TryThreadLocal.java -------------------------------------------------------------------------------- /src/main/resources/dir1/dir2/file2.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Concurrent-Patterns-and-Best-Practices/HEAD/src/main/resources/dir1/dir2/file2.txt -------------------------------------------------------------------------------- /src/main/resources/dir1/file1.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Concurrent-Patterns-and-Best-Practices/HEAD/src/main/resources/dir1/file1.txt -------------------------------------------------------------------------------- /src/main/resources/input.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Concurrent-Patterns-and-Best-Practices/HEAD/src/main/resources/input.txt --------------------------------------------------------------------------------