• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 303
  • Last Modified:

synchronized with subclass

hi guys

Object2 extends Object1

public class MyClass{
...
Object1 object1 = new Object1();
Object2 object2 = new Object2();
.....
....
synchronized( object1){
  // code 1
}

//code 2
synchronized( object 2){
  // code 3
}
}

When thread t1 executes code1, can thread t2 execute code3 at the same time?

thanks.
0
royjayd
Asked:
royjayd
  • 2
1 Solution
 
mccarlIT Business Systems Analyst / Software DeveloperCommented:
Yes, object1 and object2 are two distinct objects are so there are two distinct 'locks' that are operated on here. The class heirarchy has no impact on this at all. This would even behave in the same way...

Object object1 = new Object();
Object object2 = new Object();

Again, because they are two different objects (even though they are the same class).
0
 
mccarlIT Business Systems Analyst / Software DeveloperCommented:
The below, however, would result in only one code block being able to be executed at a time... (just to point out that it needs to be the same actual object that the synchronization works on, even this one object has to variables the refer to it)

Object2 object2 = new Object2();
Object1 object1 = object2;
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

Join & Write a Comment

Featured Post

Get your problem seen by more experts

Be seen. Boost your question’s priority for more expert views and faster solutions

  • 2
Tackle projects and never again get stuck behind a technical roadblock.
Join Now