首页 > 代码库 > java学习第22天(关于java中的锁LOCK及多线程的面试题)
java学习第22天(关于java中的锁LOCK及多线程的面试题)
在JDK5后,java提供一种更加方便的安全机制,不使用synchronized,针对线程的锁定操作和释放操作使用Lock锁。更加清晰明了。举例:
Lock lock=new ReentrantLock();
lock.lock
需要加锁的代码
lock.unlock
为什么说lock更为安全呢?因为synchronized可能会造成死锁现象,具体关于死锁现象可以参考操作系统,就不再多说。
总结下在线程中的主要几个问题
首先是
多线程有几种实现方式
应该上是有三种,第一种继承Thread类,第二种是实现Runnable接口。第三种和线程池有关。
同步的方式 有几种
同步代码块和同步方法,其中几个同步方法分为静态和非静态,非静态的锁对象使用this即可,静态使用.class。
启动一个线程是run()还是start()?
使用run的话实际上只是单纯的方法调用,与线程无关,而使用start(),则是由java虚拟机创建一个线程用该线程执行run方法。
sleep()和wait()的区别
sleep中必须包含需要睡眠的时间并且不需要进行唤醒,而wait是加锁的,是需要唤醒的。
java学习第22天(关于java中的锁LOCK及多线程的面试题)
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。