码迷,mamicode.com
首页 > 编程语言 > 详细

java学习第22天(关于java中的锁LOCK及多线程的面试题)

时间:2017-01-24 14:42:57      阅读:238      评论:0      收藏:0      [点我收藏+]

标签:死锁   ros   多线程   style   family   虚拟机   总结   继承   在线   

在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及多线程的面试题)

标签:死锁   ros   多线程   style   family   虚拟机   总结   继承   在线   

原文地址:http://www.cnblogs.com/guanxin666/p/6336876.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!