A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

彻底被同步搞晕了。。。。到底怎么使用啊?求解,最好有个比较简答的例子说明下

3 个回复

倒序浏览
本帖最后由 铿锵科技 于 2013-2-8 20:52 编辑

Object obj=new Object();
                synchronized (obj/*这个是同步锁;里面的代码同一时间只有一个线程可以访问*/) {
                        //将多线程要同步的代码放在这里
                }
同步锁可以是任意一个对象
回复 使用道具 举报
synchronized (xxx) {
              //块1         
                }
....
synchronized (xxx) {
                   //块2     
                }
使用同步代码块时,只能有一个能够线程进入;xxx就是线程的锁,只有当进入的线程从代码块中出去才会释放锁,其他的线程才可以再利用xxx;所以如果两个代码块都用xxx这个锁,两个代码块也是会阻塞第二个线程的;如上,当线程1进入块1时,线程2无论块1还是块2都无法进入
回复 使用道具 举报
当两个线程需要共享使用同一个数据时就使用同步synchronized。
具体使用方法有两种吧:1、共享数据方法(函数)使用synchronized修饰
                      2、共享数据的程序块使用synchronized修饰,synchronized(obj){程序块;}
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马