同步
同步修饰符用于控制多个线程对特定方法或块的访问。只有一个线程可以进入声明为 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();
}
}