JAVA多线程初探

分享人:茹程远

1.背景介绍

2.知识剖析

3.常见问题

4.配置展示

5.扩展思考

6.参考文献

7.更多讨论

1.背景介绍

线程

进程中负责程序执行的执行单元 线程本身依靠程序进行运行

进程

执行中的程序一个进程至少包含一个线程

2.知识剖析

多线程有什么用?

发挥多核CPU的优势

防止阻塞

线程的实现

继承Thread类

实现Runnable接口

使用ExecutorService、Callable、Future实现有返回结果的多线程

3.常见问题

线程的状态

创建(new)状态: 准备好了一个多线程的对象

就绪(runnable)状态: 调用了start()方法, 等待CPU进行调度

运行(running)状态: 执行run()方法

阻塞(blocked)状态: 暂时停止执行, 可能将资源交给其它线程使用

终止(dead)状态: 线程销毁

4.配置展示

源码

5.扩展思考

上下文切换

对于线程的上下文切换实际上就是 存储和恢复CPU状态的过程,它使得线程执行能够从中断点恢复执行。

上下文的切换开销也很重要,如果你创建了太多的线程,CPU 花费在上下文的切换的时间将多于执行程序的时间!

6.参考文献

http://www.runoob.com/java/java-multithreading.html

https://www.cnblogs.com/lwbqqyumidi/p/3804883.html

https://zhuanlan.zhihu.com/p/26441926

http://www.importnew.com/21136.html

7.更多讨论

分享到此结束

欢迎大家讨论