2020年Java多线程与并发系列22道高频面试题

前言

现在不管是大公司还是小公司,去面试都会问到多线程与并发编程的知识,大家面试的时候这方面的知识一定要提前做好储备。

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;
				// 在异常处理代码中修改共享变量的状态
			}

你可能感兴趣的:(多线程,面试,java)