java 多线程面试

Posted chenzquan

tags:

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

一、多线程的创建

1、多线程的创建

(1)、继承Thread类

(2)、实现Runnable接口

2、两种启动线程方法的区别

  1、共同点 必须调用Thread 产生线程,然后调用start()方法 开启这个线程

  2、不同点 因为Java是单继承这个特点 所以为了弥补这个缺点 我们可以实现Runnable接口 灵活

       如果继承Thread类 那么多线程的话,就必须相应产生多个线程

       如果实现Runnable接口,只需建立一个实现这个类的实例,然后用这个实例产生多个线程,就实现了资源的共享

3、start/run方法的区别

  start方法说明进入就绪状态,什么时候执行是看操作系统调度的,而run方法 是按顺序执行,没有多线程的效果

 

二、线程间通信

  1、synchronized关键字

    1)、synchronized对象锁

      

synchronized public void methodA(){

}

public void methodB(){
  synchronized(this){
    
    }
}

    2)、synchronized来实现线程间的通信  

      就是通过共享变量来进行通信

    3)、synchronized/volatile

    4)、synchronized/lock

  2、sleep/wait

  3、wait/notify机制

 

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

经验总结:Java高级工程师面试题-字节跳动,成功跳槽阿里!

面试官:Java多线程有哪几种实现方式如何实现?

什么是JAVA的多线程?

Java面试题多线程-线程安全

java面试啥是多线程

面试题: java多线程 !=!=未看