Java synchronized 关键字的讲解

首先什么事synchronized: java中内置的语言级的同步原语,说白了,就是让进程间访问 竞争资源时,能够同步.(不要告诉我你不知道什么是同步,同步就是:我在访问该资源,你也想访问,但我先来,你就给我等着.那,你是不是又想问什么是异步:我呵呵一笑,你觉得呢.说白了,就是:你想访问某个资源,结果该资源被其他人占有了.你心里默默的抱怨了几句,然后就去干其他事情了.)

那synchronized怎么使用呢,让我细细到来:
1. synchronized包括两种用法:synchronized 方法和 synchronized 块
首先来看看, synchronized 方法:

public synchronized void getMoney(int moeny) {
  while(true)
   System.out.println(moeny);
 }

public synchronized void getMoney(xxx.class) {
  while(true)
   System.out.println(moeny);
 }

那你想问这两者有什么区别:
前者: 同步加锁的是对象。(如果是不同的对象,则各个对象之间没有限制关系。)
后者: 类的同步

2.synchronized 块的使用:

public void getMoney (int moeny) {
  synchronized(this) {
   while(true) System.out.println(moeny);
  }
 }

public void getMoney (moeny) {
  synchronized(xxx.class) {
   while(true)
    System.out.println(moeny);
  }
 }

3.synchronized 方法和 synchronized 块的区别:

其实synchronized 方法和 synchronized 块功能都是一样的, synchronized 块就是灵活性高些,效率高些.
如果还是不懂点击下面链接,但要耐心看哦:

http://www.cnblogs.com/devinzhang/archive/2011/12/14/2287675.html

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值