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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© z6528328 中级黑马   /  2015-9-21 00:06  /  380 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

1、同步的前提是什么  
  1,必须要有两个或者两个以上的线程。
  2,必须是多个线程使用同一个锁。(即:锁使用同一个对象或者在同一个同步代码块(同步函数)里)
必须保证同步中只能有一个线程在运行。
2、同步的优劣?
好处:解决了多线程的安全问题。
弊端:多个线程需要判断锁,较为消耗资源,
3、同步函数的锁是什么?如果同步函数被静态修饰后,使用的锁是什么呢?
  函数需要被对象调用。那么函数都有一个所属对象引用。就是this。所以同步函数使用的锁是this。
  如果同步函数被静态修饰后,使用的不是this。因为静态的方法是随着类的加载而执行,此时还没有对象存在,this自然也不存在。静态方法中也不可以定义this。但是静态方法执行时一定有该类对应的字节码文件对象。即:类名.class,该对象的类型是Class,所以静态的同步方法,使用的锁是该方法所在类的字节码文件对象,类名.class。

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马