DEV Community

Janardhan Pulivarthi
Janardhan Pulivarthi

Posted on • Edited on

Day 16 of 100 - Java: Multi-threading

Multithreading

volatile helps facilitate atomic operation

sample code to trigger multiple threads

class Runner extends Thread { public void run() { for(int i=0; i<10; i++) { System.out.println("Hello" + i); } } } public class App { public static void main(String[] args) { Runner runner1 = new Runner(); runner1.start(); Runner runner2 = new Runner(); runner2.start(); } } 
Enter fullscreen mode Exit fullscreen mode

synchronized keyword to use intrinsic lock to wait till one thread completes.

 // Second thread have to wait until the first thread completes the // execution due to instrinsic lock public synchronized void increment() { count++; } 
Enter fullscreen mode Exit fullscreen mode

Intrinsic locks

Intrinsic locks play a role in both aspects of synchronization: enforcing exclusive access to an object's state and establishing happens-before relationships that are essential to visibility.

Every object has an intrinsic lock associated with it.

Project exercise repo - https://github.com/j143/java-threading-example

https://www.udemy.com/course/java-multithreading

Top comments (0)