1. java中有几种方法可以实现一个线程?
答:两种方法: 实现Runnable的 run接口或者继承 Thread类 重写run方法
2. 如何停止一个正在运行的线程?
答:引入共享变量,通过修改线程的变量值使线程安全停止运行;stop和 interrupt 不安全
3. notify()和notifyAll()有什么区别?
答:notify只是针对对象锁监视的随机的单个唤醒线程 notifyall可以针对对象锁监视的所有线程进行唤醒操作
为什么需要notify?因为对象执行了于wait方法.什么执行wait方法?同步的需要
参考网址:http://www.jb51.net/article/36657.htm
http://www.jb51.net/article/37868.htm
http://stackoverflow.com/questions/37026/java-notify-vs-notifyall-all-over-again
4. sleep()和 wait()有什么区别?
答:sleep 是Thread的静态方法 wait是 object对象的方法 ; sleep 控制线程的运行状态 wait是处理线程之间的通信问题
参考 http://blog.csdn.net/liuzhenwen/article/details/4202967
5. 什么是Daemon线程?它有什么意义?
答:所谓后台(daemon)线程,是指在程序运行的时候在后台提供一种通用服务的线程,并且这个线程并不属于程序中不可或缺的部分。
因此,当所有的非后台线程介绍时,程序也就终止了,同时会杀死进程中的所有后台线程。
反过来说,只要有任何非后台线程还在运行,程序就不会终止。
必须在线程启动之前调用setDaemon()方法,才能把它设置为后台线程。
注意:后台进程在不执行finally子句的情况下就会终止其run()方法。
6. java如何实现多线程之间的通讯和协作?
答:通过Object对象的三个方法 wait notify notifyAll 增加上同步synchnoize(对象锁)
未完待续...