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里就是如果出现问题就释放锁

  • 相关阅读:
    highcharts 时间少8小时问题
    Spring声明式事务配置管理方法
    jetty简介
    java事务管理
    oracle表中某个字段含有字符回车、空格的手动修改方式
    java环境变量配置
    JAVA解析XML的四种方式
    JSON-lib框架,JAVA对象与JSON、XML之间的相互转换
    Java WebService简单实例
    HTTP协议报文、工作原理及Java中的HTTP通信技术详解
  • 原文地址:https://www.cnblogs.com/pandam/p/11187129.html
Copyright © 2011-2022 走看看