关于synchronized 特别需要强调的一个点!!

来源:互联网 发布:如何破解php源码 编辑:程序博客网 时间:2024/05/19 21:43


当一个线程访问object的一个synchronized(this)同步代码块时,其他线程对object中所有其它synchronized(this)同步代码块的访问将被阻塞。

当一个线程访问object的一个synchronized(this)同步代码块时,其他线程对object中所有其它synchronized(this)同步代码块的访问将被阻塞。

当一个线程访问object的一个synchronized(this)同步代码块时,其他线程对object中所有其它synchronized(this)同步代码块的访问将被阻塞。

!!!!

首先先把观点摆出来 。接下来用例子展示。

类count 有两个函数:

 public static class count{   public synchronized void get(){}   public synchronized void put(){}   }

get()和put()都使用了synchronized 。使用以下方法进行调用:

new Thread(){      public void run(){      count.get();      }      }.start();
new Thread(){        public void run(){         count.put();        }       }.start();

这样调用是不能实现并发的!!!


因为当第一个线程访问了get()函数后,其他线程不仅仅不能访问get(),同时也不能访问put();

这很关键!!!


原创粉丝点击