Online Training Spring Hibernate Training in Delhi R Programming Training Course Big Data and Hadoop Training Java Training

Java Deadlocks - Java Deadlocks Tutorials, Deadlocks in Java

In this tutorial you will learn about Deadlocks in Java. Author explains about Java Deadlocks

Ads

Tutorials   
Java final method Assert in Java Final method in java Autoboxing in Java assert In Java JDBC batch insert using Java bean class Java Singleton Pattern Java Collection API - Java Tutorials Stack Overflow - Java Tutorials End of Year Puzzle The link to the outer class,java tutorial,java tutorials Orientating Components Right to Left,java newsletter,java,tutorial Non-virtual Methods in Java - java tutorials Multicasting in Java - java tutorials,tutorial Creation Time Comparison of Multi Dimensional Array- Java Tutorials Making Exceptions Unchecked - java tutorial,java tutorials Making Enumerations Iterable - JDK 5 Example Which is Faster - LinkedList or ArrayList? LinkedHashMap - Java Tutorials HashMap and HashCode JDK 1.4 the NullPointerException - Java Tutorials Java HashMap - Java Tutorials Java GC java awt package tutorial Java Multi Dimensions Array - Java Tutorials Java HashSet  - Java Tutorials Java Field Initialisation - Java Tutorials Java Comments - Java Tutorials J2EE Singleton Pattern - Design Pattern Tutorials Java - JDK Tutorials garbage collection in java Final Methods - Java Tutorials Exceptional Constructors - Java Tutorials Double-checked locking,java tutorials,java tutorial Disassembling Java Classes - Java Tutorials Java Deadlocks - Java Deadlocks Tutorials, Deadlocks in Java Commenting out your code - Java Tutorials Class names don't identify a class - Java Tutorials Causing Deadlocks in Swing Code Exception in Java - Java Tutorials Catching Exceptions in GUI Code - Java Tutorials boolean comparisons - tutorial Interthread Communication in Java BASIC Java - Java Tutorials Thread Deadlocks - Java Tutorials Autoboxing unboxing in Java - Java Tutorials Assertion in Java Appending Strings - Java Tutorials Anonymous Inner Classes - Anonymous Inner Classes tutorial Assertion in java
Ads

Java DeadLock

In this tutorial you will learn about Deadlocks in Java. Author explains about Java Deadlocks in Java. It is very important to make your program detect and resolve the deadlock situations.

This article explains you about Java DeadLocks with an example code.

When two threads or processes are waiting for each other to release the resource or object they holds and so are blocked forever. This situation is called deadlock. For example if one thread is holding the lock on some object that the other thread is waiting for and the other thread is holding lock on some object the first one is waiting for then they both will wait for each other to release the object they need to finish their operation but no one will release the hold object and so they will wait for each other forever.


Example to show DeadLock condition:
In this example, there are two thread objects myThread and yourThread. When myThread starts running it holds lock on str1 object. If now yourThread strarts it gets lock on str2. Now when first thread continues and wants lock on str2 then it is not available because second thread already holds lock on str2. Now both thread will wait for each other. myThread waits for str2 to be released by yourThread and yourThread is waiting for str1 to be released by myThread. This program now goes to deadlock condition. Now if you want to break the program then you need to press CTRL and C from keyboard.

DeadLockDemo.java

package threads;
import java.util.*;

public class DeadLockDemo extends Thread {
public static String str1 = "str1";
public static String str2 = "str2";

public static void main(String[] a) {
Thread myThread = new MyThread();
Thread yourThread = new YourThread();

myThread.start();
yourThread.start();
}
private static class MyThread extends Thread {
public void run() {
synchronized (str1) {
System.out.println("MyThread Holds lock on object str1");
try {
Thread.sleep(10);
}
catch (InterruptedException e) {
}

System.out.println("MyThread waiting for lock on object str2");
synchronized (str2) {
System.out.println("MyThread Holds lock on objects str1, str2");
}
}
}
}
private static class YourThread extends Thread {
public void run() {
synchronized (str2) {
System.out.println("YourThread Holds lock on object str2");
try {
Thread.sleep(10);
}
catch (InterruptedException e) {}
System.out.println("YourThread waiting for lock on object str1");
synchronized (str1) {
System.out.println("YourThread Holds lock on objects str1, str2");
}
}
}
}
}

Download Program

Advertisements

Share on Google+Share on Google+

Java Deadlocks - Java Deadlocks Tutorials, Deadlocks in Java

Posted on: April 18, 2011 If you enjoyed this post then why not add us on Google+? Add us to your Circles

Advertisements

Ads
 

Discuss: Java Deadlocks - Java Deadlocks Tutorials, Deadlocks in Java  

Post your Comment


Your Name (*) :
Your Email :
Subject (*):
Your Comment (*):
  Reload Image
 
 
Comments:1
Rohtash
October 25, 2011
about deadlock

what is the purpose of deadlock

Ads

 

Ads