File APIs for Java Developers
Manipulate DOC, XLS, PPT, PDF and many others from your application.
http://aspose.com/file-tools
Win a copy of Clojure in Action this week in the Clojure forum!
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic

Synchronized Thread doubt

 
Anudeep Duvvuri
Greenhorn
Posts: 29
  • 0
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
package may25th;

class Synchr extends Thread {
synchronized void method1() throws InterruptedException {
for (int i = 0; i < 5; i++) {
System.out.println("method1-------" + i+ " "+Thread.currentThread().getName());
Thread.sleep(1000);
}
}

synchronized void method2() throws InterruptedException {
for (int i = 0; i < 5; i++) {
System.out.println("method2-------" + i+" "+Thread.currentThread().getName());
Thread.sleep(1000);
}
}

public void run() {
try {
method1();
} catch (InterruptedException e1) {
e1.printStackTrace();
}
try {
method2();
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}

public class ThreadSynch2 {
public static void main(String[] args) {
Synchr s = new Synchr();
s.setName("one");
s.start();
Synchr s1 = new Synchr();
s1.setName("two");
s1.start();

}

}

The ooutput of the above program is
method1-------0 one
method1-------0 two
method1-------1 one
method1-------1 two
method1-------2 one
method1-------2 two
method1-------3 one
method1-------3 two
method1-------4 one
method1-------4 two
method2-------0 one
method2-------0 two
method2-------1 one
method2-------1 two
method2-------2 one
method2-------2 two
method2-------3 one
method2-------3 two
method2-------4 one
method2-------4 two

I could not understand why thread 2 is called before one completes even though the method is synchronized.
Sorry if there was any mistake in this
Please clarify me
 
Alexei Kaigorodov
Greenhorn
Posts: 17
  • 1
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
In order to synchronize 2 threads, the synchronized object must be the same. In your code, each thread is synchronizing on its own Thread object, which is meaningless.
 
Anudeep Duvvuri
Greenhorn
Posts: 29
  • 0
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
ya i got it after posting here thank you for your reply
 
I agree. Here's the link: http://aspose.com/file-tools
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic