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、好处

  • 相关阅读:
    poj3723Conscription
    hiho1304 24点
    hdu2089不要62
    hdu3555Bomb
    关于分割平面问题
    poj2976Dropping tests(01分数规划)
    linux命令行
    java内存不足
    如何设置jsp默认的编码为utf-8
    visul svn+花生壳
  • 原文地址:https://www.cnblogs.com/zquan/p/9602050.html
Copyright © 2011-2022 走看看