
Hi ! some people are feeling bore on my regular questions on threads. Do not feel bore on my regular questions.I am a beginner.I am learning java with out any teacher.I need your valuable suggestinons.Today i am going to ask on synchronized block.
the general form of synchronized block is
class table
{
.......
void printTable(int n)
{
synchronized(object) {
......
}
}
}
1)Here object means object of any class.i.e we can lock object of any class besides the object of "table" class. 2)if we place this in place of object it is possible to lock object of table class 3)then how can we lock object of a class other than table?can you give example based on below programme? 4) if we want to access a variable or method from table class we need object of table . if we lock object of table class it is not possible to an object of table class to access synchronized block of table class from two different places simultaneously. but if we lock object of another class,say X,how can the object of class X can access synchronized block of table class? because object of class X is not object of table.object of table only can access members of table.
I think you got my doubt. I request you to clarify my doubt based on below programme.
import java.io.*;
class table
{
void printTable(int n)
{
synchronized(this)
{
for(int i=1;i<=5;i++)
{
System.out.println(n*i);
try{
Thread.sleep(500);
}
catch(InterruptedException ie)
{System.out.println(ie);
}
}
}
}
}
class MyThread1 extends Thread
{
table t;
MyThread1(table t)
{
this.t=t;
}
public void run(){
t.printTable(5);
}
}
class MyThread2 extends Thread
{
table t;
MyThread2 (table t)
{
this.t=t;
}
public void run()
{
t.printTable(100);
}
}
class synchronizedblock1
{
public static void main(String args[]
)
{
table t=new table();
MyThread1 t1=new MyThread1(t);
MyThread2 t2=new MyThread2(t);
t1.start();
t2.start();
}
}
==========================
output:
5
10
15
20
25
100
200
300
400
If you are facing any programming issue, such as compilation errors or not able to find the code you are looking for.
Ask your questions, our development team will try to give answers to your questions.