同步
同步修飾符用於控制多個執行緒對特定方法或塊的訪問。只有一個執行緒可以進入宣告為 synchronized 的方法或塊。synchronized 關鍵字適用於物件的內部鎖定,在同步方法的情況下,當前物件鎖定,靜態方法使用類物件。嘗試執行同步塊的任何執行緒都必須首先獲取物件鎖。
class Shared
{
int i;
synchronized void SharedMethod()
{
Thread t = Thread.currentThread();
for(int i = 0; i <= 1000; i++)
{
System.out.println(t.getName()+" : "+i);
}
}
void SharedMethod2()
{
synchronized (this)
{
System.out.println("Thais access to currect object is synchronize "+this);
}
}
}
public class ThreadsInJava
{
public static void main(String[] args)
{
final Shared s1 = new Shared();
Thread t1 = new Thread("Thread - 1")
{
@Override
public void run()
{
s1.SharedMethod();
}
};
Thread t2 = new Thread("Thread - 2")
{
@Override
public void run()
{
s1.SharedMethod();
}
};
t1.start();
t2.start();
}
}