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类中

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

  • 相关阅读:
    C语言函数指针
    C语言动态申请内存
    C语言指针的常见错误
    C语言指针和数组的关系
    jni c语言使用指针交换两个值
    求两条线段的交点
    利用Opencv在PictureControl中显示照片
    根据反射解析和转换DataRow
    快速排序代码备份
    OpenCV常用图像操作和鼠标操作(双11版本)
  • 原文地址:https://www.cnblogs.com/nadou/p/13985367.html
Copyright © 2011-2022 走看看