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

  • 相关阅读:
    shell 脚本编程学习
    LMH6505 vs AD8336
    ubuntu 8.04 NFS服务的配置(转)
    新博客开张了!
    基于ARMlinux环境下的音频系统开发
    可恶的英语考试
    转HashTable(C#)
    我的手机3300
    高效注册DLL控件 让你的IE浏览器复活
    学习.NET2.0随笔
  • 原文地址:https://www.cnblogs.com/pandam/p/11187129.html
Copyright © 2011-2022 走看看