zoukankan      html  css  js  c++  java
  • Java—多线程总结

    知识总结

    同步锁

      多个线程想保证线程安全,必须要使用同一个锁对象> 同步锁

    同步代码块> 同步锁

      synchronized (锁对象){
        可能产生线程安全问题的代码
      }

    同步代码块的锁对象可以是任意的对象

    同步方法

    public synchronized void method()
      可能产生线程安全问题的代码
    }

    同步方法中的锁对象是 this

    静态同步方法

    public synchronized void method()
      可能产生线程安全问题的代码
    }

    静态同步方法中的锁对象是 类名.class

    多线程有几种实现方案,分别是哪几种?
      a, 继承Thread类
      b, 实现Runnable接口
      c, 通过线程池,实现Callable接口

    同步有几种方式,分别是什么?
      a,同步代码块
      b,同步方法
        静态同步方法

    启动一个线程是run()还是start()?它们的区别?

    启动一个线程是start()

    区别:
     start: 启动线程,并调用线程中的run()方法
     run : 执行该线程对象要执行的任务

    sleep()和wait()方法的区别

    sleep: 不释放锁对象, 释放CPU使用权
       在休眠的时间内,不能唤醒

    wait(): 释放锁对象, 释放CPU使用权
       在等待的时间内,能唤醒

    为什么wait(),notify(),notifyAll()等方法都定义在Object类中

    锁对象可以是任意类型的对象

  • 相关阅读:
    OpenStack--Rabbitmq组件消息队列
    Redis-主从
    haproxy mycat mysql 读写分离MHA高可用
    mysql小白系列_14 线上故障分析与排错
    mysql小白系列_13 Online DDL
    mysql小白系列_12 sysbench
    mysql小白系列_11 MHA补充
    mysql小白系列_11 MHA
    mysql小白系列_10 mysql主从复制原理
    mysql小白系列_09 mysql性能优化关键点
  • 原文地址:https://www.cnblogs.com/nadou/p/13985367.html
Copyright © 2011-2022 走看看