码迷,mamicode.com
首页 > 编程语言 > 详细

java 多线程面试

时间:2018-09-07 01:01:44      阅读:174      评论:0      收藏:0      [点我收藏+]

标签:method   ola   not   sleep   tar   public   就是   产生   this   

一、多线程的创建

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 多线程面试

标签:method   ola   not   sleep   tar   public   就是   产生   this   

原文地址:https://www.cnblogs.com/zquan/p/9602050.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!