java 多线程面试

本文详细介绍了Java中多线程的创建方式,包括继承Thread类和实现Runnable接口的方法,并对比了两者的区别。同时,文章深入讲解了线程间通信机制,如synchronized关键字的使用,sleep与wait的区别,以及wait/notify机制。此外,还探讨了线程池的好处。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、多线程的创建

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机制

 

线程池

1、好处

 

转载于:https://www.cnblogs.com/zquan/p/9602050.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值