JAVA开发🌺程序小🐒子

多线程基础

2016-11-27  本文已影响139人  写java的逗比叫z1

1. 进程和线程之间有什么不同?

2. 多线程编程的好处是什么?

3. 用户线程和守护线程有什么区别?

4. 如何创建一个线程?

  1. 实现Runnable接口, 然后将他传递给Thread的构造函数, 创建一个Thread对象
  2. 直接继承Thread

5. 有哪些不同的线程生命周期?

6. 可以直接调用Thread类的run()方法吗?

7. 如何让正在运行的线程暂停一段时间?

8. 你对线程优先级的理解是什么?

9. 什么是线程调度器(Thread Scheduler)和时间分片(Time Slicing)?

10. 在多线程中, 什么是上下文切换?

11. 如何确保main()方法所在的线程是Java程序最后结束的线程?

12. 线程之间是如何通信的?

13. 为什么线程通信的方法wait()/notify()/notifyAll()被定义在Object类里?

14. 为什么wait()/notify()/notifyAll()必须在同步方法或者同步块中被调用?

15. 为什么Thread类的sleep()yield()方法是静态的?

16. 如何确保线程安全?

17. volatile关键字在Java中有什么作用?

18. 同步方法和同步块, 哪个是更好的选择?

19. 如何创建守护线程?

20. 什么是ThreadLocal?

同线程状态关联起来是private static属性.

21. 什么是ThreadGroup? 为什么不建议使用它?

22. 什么是死锁(Deadlock)? 如何分析和避免死锁?

23. 什么是Java Timer类?如何创建一个有特定时间间隔的任务?

24. 什么是线程池?如何创建一个Java线程池?

上一篇 下一篇

猜你喜欢

热点阅读