java线程同步方法

1.同步方法

    synchronized修饰方法,对象内置锁保护整个方法(对象锁)

    若方法static修饰,类锁

2.同步代码块

    同步—高开销—减少同步内容

3.wait和notify

    wait:线程处于等待,释放锁

    sleep:线程睡眠,不释放锁

    notify:随机唤醒某个处于等待的线程

    notifyall:唤醒所有等待线程

4.volatile—可见性,禁止指令重排序

5.重入锁(ReentrantLock)

    线程可以进入一个它已经拥有锁所同步的代码块

    lock() and unlock()

6.局部变量(ThreadLocal类)— 空间换时间

    每个线程可以获得某变量的副本,并相互独立

    不同线程只能get,set,remove自己的变量,不影响其他线程

7.阻塞队列 — java.util.concurrent(JUC)

    ArrayBlockingQueue、LinkedBlockQueue、PriorityBlockingQueue


猜你喜欢

转载自blog.csdn.net/quitozang/article/details/80992500