1. Thread.sleep() , sleep() 是Thread的静态方法,用于暂停当前线程活动
10-1):适合多个相同的程序代码的线程去处理同一个资源
10-2):可以避免java中的单继承的限制
10-3):增加程序的健壮性,代码可以被多个线程共享,代码和数据独立。
主线程也有可能在子线程结束之前结束。并且子线程不受影响,不会因为主线程的结束而结束。
main方法其实也是一个线程。在java中所以的线程都是同时启动的,至于什么时候,哪个先执行,完全看谁先得到CPU的资源
在java中,每次程序运行至少启动2个线程。一个是main线程,一个是垃圾收集线程。
因为每当使用java命令执行一个类的时候,实际上都会启动一个JVM,每一个jVM实习在就是在操作系统中启动了一个进程。
11. 线程优先级与线程执行先后没有根本区别(关键看谁先获得CPU资源。)
12. 在线程操作中,也可以使用yield()方法,将一个线程的操作暂时交给其他线程执行
13. sleep() 与 wait() 的区别:
13.1 来自不同类: sleep()来自Thread类的静态方法(谁调用sleep,谁睡觉), wait()来自Object类。
13.2 资源释放不同:sleep()没有释放资源,而wait()释放了资源,进入线程池等待。
13.3 使用范围不同:sleep可以再任何地方使用,而wait(),notify(), notifyAll()必须在同步块中使用.
13.4 sleep()必须捕获异常,而wait不用.
14. 用户线程与守护线程的区别?