并发编程、数据库和Spring,我认为这个算程序员开发面试的三件套吧。Spring提供开发,数据库是使用数据的维护和获取,并发是为了提高程序的性能,还都是挺重要的,都是离不开的。每天看一看,开发不困难。
一、并发编程
另外本人整理了20年面试题大全,包含spring、并发、数据库、Redis、分布式、dubbo、JVM、微服务等方面总结,下图是部分截图,需要的话点这里点这里,暗号CSDN。
1、Java 中实现多线程有几种方法
(1)继承 Thread 类;
(2)实现 Runnable 接口;
(3)实现 Callable 接口通过 FutureTask 包装器来创建 Thread 线程;
(4)使用 ExecutorService、Callable、Future 实现有返回结果的多线程(也就是使用了 ExecutorService 来管理前面的三种方式)。
2、如何停止一个正在运行的线程
(1)使用退出标志,使线程正常退出,也就是当 run 方法完成后线程终止。
(2)使用 stop 方法强行终止,但是不推荐这个方法,因为 stop 和 suspend 及 resume 一样都是过期作废的方法。
(3)使用 interrupt 方法中断线程。
class MyThread extends Thread {
volatile Boolean stop = false;
public void run() {
while (!stop) {
System.out.println(getName() + " is running");
try {
sleep(1000);
}
catch (InterruptedException e) {
System.out.println("week up from blcok...");
stop = true;
// 在异常处理代码中修改共享变量的状态
}
}
System.out.println(getName() + " is exiting...");
}
}
class InterruptThreadDemo3 {
public static void main(String[] args)