• 多线程、线程同步、Lock接口


    第1章     多线程

    测试类:

     

    1.1      线程安全

    如果说我们的多线程如果像单线程一样每次的运行结果都是一样的就说明安全了、

    1.2      线程同步(线程安全处理Synchronized)

    小复习:缓冲区

    StringBuff都加用了同步方法,

    StringBuilder没加,所以快,但不安全

    安全,但是慢

    因为if循环里排着队所以慢

    java中提供了线程同步机制,它能够解决上述的线程安全问题。

             线程同步的方式有两种:

    l  方式1:同步代码块

    l  方式2:同步方法

    1.2.1    同步代码块

    l  同步方法:在方法声明上加上synchronized

    public synchronized void method(){

       可能会产生线程安全问题的代码

    }

     

    把容易产生异常代码给包进去,如果一个线程没出来,另一个不能进去

    1.2.2    同步方法

    l  同步方法:在方法声明上加上synchronized

    public synchronized void method(){

       可能会产生线程安全问题的代码

    }

             同步方法中的锁对象是 this默认的

     

    学反射的时候会学

    l  静态同步方法: 在方法声明上加上static synchronized

    public static synchronized void method(){

    可能会产生线程安全问题的代码

    }

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

    1.2.3    Lock接口

    之前的锁都是一个代码走完之后把锁还回去才能下一个代码,但如果途中出现一个异常锁就回不去,也没法继续下一个代码了。所以这个Lock接口提供了获取锁,释放锁。

     

    代码:

     

    写在finally里就是如果出现问题就释放锁

  • 相关阅读:
    iOS
    关于HTTP协议学习(三)
    关于HTTP协议学习(二)
    关于HTTP协议学习(一)
    Swift之Swift编码规范
    老罗学习MVC之旅:MVC组件分析
    android 左右翻页
    android 检测网络是否可用
    android 在线升级借助开源中国App源码
    android 渐变展示启动屏
  • 原文地址:https://www.cnblogs.com/pandam/p/11187129.html
Copyright © 2020-2023  润新知