下载此文档

并发编程测试题.docx


文档分类:IT计算机 | 页数:约4页 举报非法文档有奖
1/4
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/4 下载此文档
文档列表 文档介绍
java并发面试题(一)基础
多线程
java中有几种方法可以实现一个线程?(参考答案)
答: 1)继承Thread方法:Java线程类也是一个object类,。 可以用如下方式用java中创建一个线程:
Tread thread = new Thread();
执行该线程可以调用该线程的start()方法:
();
2)实现Runnable接口:
public class MyRunnable implements Runnable {
public void run(){
("MyRunnable running");
}
}
Thread thread = new Thread(new MyRunnable());
();
如何停止一个正在运行的线程?
答:使用共享变量的方式:代码中定义了一个退出标志exit,当exit为true时,while循环退出,exit的默认值为false。在定义exit时,使用了一个Java关键字volatile,这个关键字的目的是使
exit同步,也就是说在同一时刻只能由一个线程来修改exit的值。
notify()和notifyAll()有什么区别?
答:void notify(): 唤醒一个正在等待该对象的线程。
void notifyAll(): 唤醒所有正在等待该对象的线程。
两者的最大区别在于:
notifyAll使所有原来在该对象上等待被notify的线程统统退出wait的状态,变成等待该对象上的锁,一旦该对象被解锁,他们就会去竞争。
notify他只是选择一个wait状态线程进行通知,并使它获得该对象上的锁,但不惊动其他同样在等待被该对象notify的线程们,当第一个线程运行完毕以后释放对象上的锁,此时如果该对象没有再次使用notify语句,即便该对象已经空闲,其他wait状态等待的线程由于没有得到该对象的通知,继续处在wait状态,直到这个对象发出一个notify或notifyAll,它们等待的是被notify或notifyAll,而不是锁。
sleep()和 wait()有什么区别?
答:
这两个方法来自不同的类分别是Thread和Object
最主要是sleep方法没有释放锁,而wait方法释放了锁,使得其他线程可以使用同步控制块或者方法。
wait,notify和notifyAll只能在同步控制方法或者同步控制块里面使用,而sleep可以在任何地方使用(使用范围)
sleep必须捕获异常,而wait,notify和notifyAll不需要捕获异常

sleep()让一个线程休眠一段时间,能自动醒来进入到可运行状态,不会马上进入运行状态,wait()让一个线程等待,直到线程被杀死或被唤醒。
什么是Daemon线程?它有什么意义?
java如何实现多线程之间的通讯和协作?

什么是可重入锁(ReentrantLock)?
当一个线程进入某个对象的一个synchronized的实例方法后,其它线程是否可进入此对象的其它方法?

并发编程测试题 来自淘豆网m.daumloan.com转载请标明出处.

相关文档 更多>>
非法内容举报中心
文档信息
  • 页数4
  • 收藏数0 收藏
  • 顶次数0
  • 上传人ipbohn97
  • 文件大小62 KB
  • 时间2018-01-23