阿粉因为原来的编程习惯,已经很久没有去考虑并发的问题了,结果之前在面试的问题就回答的不是很完善,而阿粉也用心学习了并发编程这一块的所有内容,一起来分享给大家。
为什么需要并发编程
因为现在的CPU我们大家也都知道,什么几核几线程,各种各样,而我们并发编程的目的是为了让程序运行得更快,这里的更快说的并不是让我们无限制启动更多的线程就能让程序进行最大可能的并发操作,但是我们在进行并发编程的时候,很容易遇到很多的问题,比如说死锁问题,再比如说上下文的切换的问题,这都是问题所在。
实现多线程的几种方式,面试中最简单的题目
说起来这个面试题,很多回答都一样,
-
继承Thread类
-
实现Runnable接口
-
使用线程池
这是很多面试者回答的时候总是回答这三个,但是实际上,实现多线程的方式也不限于这几种方式,还有比如说带返回值的线程实现,定时器实现,内部类实现,这些方式都是可以实现多线程的。那我们今天就先来把这些不常用的方式来梳理一下。
使用匿名内部类的方式实现多线程
其实说实话,这匿名内部类的方式也不能算是一种新的实现方式,只不过是把这个实现方式放到了匿名类里面了,实现的总体内部还是使用的继承 Thread和实现Runnable接口。
案例实现:
public class TestClass {
public static void main(String[] args) {
// 基于子类的方式