java面试题网

普通会员

257

帖子

9

回复

131

积分

楼主
发表于 2018-03-22 09:46:04 | 查看: 372| 回复: 0

(1)同步有两种方法实现:一种是利用synchronized标示,另外一种是加锁。生成锁的对象的方法是:private static Lock lock = new ReentrantLock();Lock是一个接口,而Reentrantlock是一个实现的类。构造方法有:ReentrantLock()和ReentrantLock(fair:boolean)两种。其中第二种传递的是一个boolean值的参数,当设置为true时系统会按照等待的先后时间让线程活得锁,但是效率和性能不如默认值的好,但是同时也可以避免资源匮乏。synchronized可以声明方法,也可以用来标记某段代码。用来标记某段代码时的用法是:synchronized(){}。

(2)通讯方面有两种方法,第一种是利用锁生成Condition对象,然后调用await()和signal()或者signalall(),另外一种是利用继承的object类中的wait()和notify()或者notifyall()唤醒方法。个人觉得利用锁生成的condition对象的方法会比较灵活。



您需要登录后才可以回帖 登录 | 立即注册

java面试题网无聊看看网与java建站系统提供技术支持V2.1 网站地图 © 2016-2018