MENU

Fun & Interesting

Java Synchronized - The synchronized keyword in Java and Java synchronized blocks and methods

Jakob Jenkov 99,179 5 years ago
Video Not Working? Fix It Now

Java synchronized blocks are either methods or blocks within methods which are synchronized. Synchronized blocks help solve concurrency problems like race conditions, data visibility, instruction reordering etc. A Java synchronized block is synchronized on a specific "monitor object". Only one thread can enter any synchronized block synchronized on the same monitor object. Multiple synchronized blocks can be synchronized on a shared monitor object. Chapters 0:00 Java synchronized - introduction 0:10 Java synchronized keyword 0:15 Synchronized instance methods 0:55 Synchronized blocks inside instance methods 1:36 Synchronized block monitor objects 6:15 Example of threads calling synchronized instance methods on a shared object 8:59 Synchronized static methods 11:21 Using both synchronized static and instance methods 13:44 Using different monitor objects for synchronized blocks within same class 15:25 Sharing monitor objects across different class instances (objects) 16:23 Monitor objects cannot be null 16:50 Example of sharing monitor objects across objects 20:58 Don't use String constant objects as monitor objects 22:13 Java synchronized blocks inside Java Lambda Expressions 25:34 Java synchronized block reentrance rules 27:41 Java synchronized block data change visibility guarantee 33:14 Java synchronized block visibility example 36:00 Java synchronized block happens before guarantee 40:48 Java syncronized block limitations 42:42 Java synchronized block performance overhead 43:56 Java syncrhronized blocks in clustered setups Java Memory Model - JSR 133 https://www.cs.umd.edu/~pugh/java/memoryModel/jsr-133-faq.html Java volatile tutorial - textual / video: http://tutorials.jenkov.com/java-concurrency/volatile.html https://www.youtube.com/watch?v=nhYIEqt-jvY Java Concurrency & Multithreading Playlist https://www.youtube.com/playlist?list=PLL8woMHwr36EDxjUoCzboZjedsnhLP1j4 Java Memory Model http://tutorials.jenkov.com/java-concurrency/java-happens-before-guarantee.html https://www.youtube.com/watch?v=LCSqZyjBwWA&list=PLL8woMHwr36EDxjUoCzboZjedsnhLP1j4&index=4&t=803s Java Happens Before Guarantee http://tutorials.jenkov.com/java-concurrency/java-happens-before-guarantee.html https://www.youtube.com/watch?v=oY14UyP61F8 Java Lambda Expressions http://tutorials.jenkov.com/java/lambda-expressions.html https://www.youtube.com/playlist?list=PLL8woMHwr36HQhhPPdV_T8rigbuywMpD7

Comment