本文目录一览:
面试问 关于JAVA多线程,从哪些方面回答呢
应用场景
即作用是什么,哪些场景下需要,能解决哪类问题,通常情况下面试官更关心这个。
实现方式
除了什么时候用,你还得告诉他怎么用。什么Thread、Runnable、线程池之类的丢上去,这些比较基础。
线程同步
这个问题其实比较复杂。线程同步的概念最易于理解的案例就是在生产者消费者模式中的应用,你可以跟他讲讲这个。当然,这个涉及到对象锁基本就够了。
然后你再说说线程同步的几个方式,synchronized(对象、方法)、Lock、wait/notify之类的,说说它们的区别和应用场景。
最后提一提JDK中那些容器的线程同步问题,这样基本的使用算是不会有大问题了。
上面的东西你都能讲清楚,你多线程上的内容也就回个7788了,这块儿的面试基本没问题了
java 面试 什么是多线程
多线程是指一个应用程序同时执行多个任务,一般来说一个任务就是一个线程 ,而一个应用程序有一个以上的线程我们称之为多线程。
补充内容
线程与进程的区别:
进程(程序):是静态概念,一个class文件、一个exe文件
线程:是一个程序里面不同的执行路径
举例说明:
public class ThreadTest {
public static void m1() {
System.out.println("m1");
}
public static void m2() {
System.out.println("m2");
}
public static void m3() {
m1();
m2();
}
public static void main(String[] args) {
m3();
}}
程序中的路径或者线程也就是main方法(共一条):
java面试 什么是多线程
多线程就是把一堆不需要依次做的工作分给几个人并行做 加快工作效率;
比如你要压缩10个tar包 一个tar包需要1分钟 不开线程要10分钟 你开10个线程1分钟就做完了
java面试什么是多线程
线程定义比较抽象,简单的说就是一个代码执行流。许多执行流可以混合在一起由CPU调度。线程是允许各种任务交互执行的方式。
Java的线程在操作系统的实现模式依系统不同而不同,可能是系统级别的进程或线程,但对于程序员来说并没有影响。
任务交互的一个好处是增加程序响应。如一个界面程序执行一段耗时的数据库查询,使用单独的线程可以让界面依然响应用户的其他输入,而单线程只能等待查询结束再处理。
JVM以及操作系统会优先处理优先级别高的线程,但不代表这些线程一定会先完成。设定优先级只能建议系统更快的处理,而不能强制。
另外,在运行时,并没有按照函数分界,而是按照机器码/汇编码分界。也就是说不保证任何一段代码是被完整而不打断的执行的(除非你已经使用同步手段)。正由于如此,各种线程同步的方法应运而生。