Java and Concurrency
1 Abstract
These are notes on how Java supports concurrency. There is a separate page for Java support for event-driven programming. We are assuming that a course in OS concepts has contributed pretty good understanding of concurrency, and processes.
2 Concurrency Fundamentals
- ./concurrency-fundas.html Processes, Threads, msg passing, synch, mutex, scheduling, etc. Language independent discussion.
- the happens-before relationship
- Atomic Access
- Locks
3 Java Concurrency
- Java had concurrency support from Java1. Java8 adds significant improvements. Official docs.
- Defining and Starting a Thread
- Synchronized Methods, Guarded Blocks
java.util.concurrent.ExecutorService
Interface- Thread Pools
- Fork/Join
3.1 Example Source Code
- ../Java/src/Meenie.java Eeny, meeny, threads
- http://sourceforge.net/projects/javaconcurrenta/ Open source. Java Concurrent Animated: Animations that show usage of concurrency features.
- To try it out, download
javaConcurrentAnimated.jar
, and run
java -cp patName/javaConcurrentAnimated.jar vgrazi.concurrent.samples.launcher.ConcurrentExampleLauncher
- https://docs.oracle.com/javase/tutorial/essential/concurrency/ Oracle Java Tutorial, Concurrency Trail; My Lecture. The items above are all covered here. Required Reading