多线程、线程同步、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里就是如果出现问题就释放锁

转载于:https://www.cnblogs.com/pandam/p/11187129.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值