zoukankan      html  css  js  c++  java
  • 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机制

    线程池

    1、好处

  • 相关阅读:
    Spring Boot应用程序属性
    Spring Boot Bean和依赖注入
    Spring Boot构建系统
    Spring Boot Tomcat部署
    Spring Boot引导过程
    Spring Boot快速入门
    Spring Boot简介
    eclipse中将项目打包成jar的两种方法,及其问题与解决方法
    配置Zuul代理下游的认证
    WireMock和Spring MVC模拟器
  • 原文地址:https://www.cnblogs.com/zquan/p/9602050.html
Copyright © 2011-2022 走看看