4.04.并发问题

2019-01-17  本文已影响0人  RockyLuo_290f

针对线程的安全性问题,我们需要使用同步(就是要加锁,共享资源只能一个人同时访问)锁
语法:

    synchronized( 锁对象 ){
        //操作共享资源的代码
        //....
    }

  1. 代码被多个线程访问

  2. 代码中有共享的数据

  3. 共享数据被多条语句操作

Synchronized 同步代码块的锁对象可以是任意类对象(线程的实现方式是继承于Thread)

synchronized 可以提到方法上
如果是静态方法,Synchronized的锁对象就是当前类的类对象
如果不是静态方法, 在runnable创建方式下可以实现,锁对象就是当前对象 this
只要锁对象一致,就不会有问题

  public synchronized static void demofunction(){
}

线程休眠是很必要的,减少服务器的压力,如果休眠时在同步代码块中,则不会让出同步锁

上一篇下一篇

猜你喜欢

热点阅读