java 多线程面试题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java 多线程面试题相关的知识,希望对你有一定的参考价值。

1.什么是线程?

     线程是操作系统能够运行的最小调度单位,他被包含在进程中,是进程中实际运作的单位。

2.线程和进程的区别

  线程是进程的子集,一个进程有很多线程,每个线程执行不同的任务,不同的进程使用不同的内存空间,而所有线程共享一片内存空间,每个线程都有单独的栈内存用来存储本地数据。

3.如何在java中实现线程

  java。lang。Thread的实例就是一个线程,继承Thread或实现runnable接口

4.用runnable接口,因为java不能实现多重继承

5.Thread类的run和start方法有什么区别

  start方法用来启动新创建的线程,直接调用run在原来的线程中使用,没有启动新的线程,start方法才启动新的线程

6.runnable和callable有什么不同

  callable的call方法可以返回值和抛出异常,而runnable的run方法没有,

7.java内存模型是什么

  

10 java中的volatile变量是什么?

  只有成员变量可以使用他,volatile变量可以保证下一个读取操作会在前一个写操作之后发生,

11.什么是线程安全,vector是线程安全吗

  如果你的代码所在的进程中有多个线程在同时运行,而这些线程可能会同时运行这段代码。如果每次运行结果和单线程运行的结果是一样的,而且其他变量的值也和预期的是一样的,就是线程安全的,

12 java中什么是竞态条件,举个例子说明

  竞态条件会导致程序在并发情况下出现一些bugs,多线程对一些资源的竞争就会出现竞态条件,

13 一个线程运行时发生异常会怎样?

  如果异常没有被捕获该线程将会停止执行

14 两个线程如何实现共享数据

  可以通过共享对象来实现,

15 什么是threadlocal变量

  每一个线程都有一个threadlocal就是每个线程都拥有自己独立的变量,竞争条件被彻底消除了,

16 什么是futuretask

  表示一个可以取消的异步运算,他有启动和取消运算,

 

以上是关于java 多线程面试题的主要内容,如果未能解决你的问题,请参考以下文章

话说多线程

java面试 啥是多线程

java面试啥是多线程

JAVA多线程和并发基础面试问答

JAVA多线程和并发基础面试问答

面试问 关于JAVA多线程,从哪些方面回答呢