java中的知识涉及的范围是十分广阔的,而且它的知识点也是比较复杂的。今天就来为大家介绍一下,java多线程同步方法,同步代码块的实例展示,一起来看看吧。
首先是,同步方法
用synchronized关键字修饰方法。
由于java的每个对象都有一个内置锁,当用此关键字修饰方法时,内置锁会保护整个方法。在调用该方法前,需要获得内置锁,否则就处于阻塞状态。代码展示如下:public class Bank
{
private int count = 0; // 账户余额
// 存钱
public synchronized void addMoney(int money)
{
count += money;
System.out.println(System.currentTimeMillis() + "存进:" + money);
}
// 取钱
public synchronized void subMoney(int money)
{
if (count - money
{
System.out.println("余额不足");
return;
}
count -= money;
System.out.println(+System.currentTimeMillis() + "取出:" + money);
}
// 查询
public void lookMoney()
{
System.out.println("账户余额:" + count);
}
}
同步代码块,
用synchronized关键字修饰语句块。被该关键字修饰的语句块会自动被加上内置锁,从而实现同步,代码展示如下:public class Bank
{
private int count = 0; // 账户余额
// 存钱
public void addMoney(int money)
{
synchronized(this)
{
count += money;
}
System.out.println(System.currentTimeMillis() + "存进:" + money);
}
// 取钱
public void subMoney(int money)
{
synchronized(this)
{
if (count - money
{
System.out.println("余额不足");
return;
}
count -= money;
}
System.out.println(+System.currentTimeMillis() + "取出:" + money);
}
// 查询
public void lookMoney()
{
System.out.println("账户余额:" + count);
}
}
需要注意的是,同步是一种高开销的操作,因此应该尽量减少同步的内容。通常没有必要同步整个方法,使用synchronized代码块同步关键代码即可。
以上就是关于java多线程同步方法,同步代码块的实例展示的主要内容了。如果你对java知识感兴趣,想要了解更多java实例,敬请关注奇Q工具网。
推荐阅读: