zoukankan      html  css  js  c++  java
  • 多线程、线程同步、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里就是如果出现问题就释放锁

  • 相关阅读:
    python 文件路径拼接、判断、创建、输出
    热力图制作
    矩阵文件添加列标签
    cmd运行 ‘.py’ 文件
    hdu 2017 字符串统计
    hdu 2016 数据的交换输出
    hdu 2014 青年歌手大奖赛_评委会打分
    hdu 2013 蟠桃记
    hdu 2012 素数判定
    hdu 2011 多项式求和
  • 原文地址:https://www.cnblogs.com/pandam/p/11187129.html
Copyright © 2011-2022 走看看