zoukankan      html  css  js  c++  java
  • conditon 实现等待/通知

    synchronized 与wait() 和notify() notifyAll() 方法相结合可以实现等待 通知
    ReetrantLock也可以实现同样的功能 需要借助condition对象,一个lock对象里面可以创建多个condition(对象监视器),可以选择性的进行线程通知,
    notify() 和notifyall() 方法被通知是由jvm随机选择的,condition的使用需要在lock里面。

      

     

    reetranreadwritelock 可重入读写锁
    多个读之间不互斥,读锁与写锁互斥, 写锁与写锁互斥

    为何使用读写锁?
    如果有很多线程从一个数据结构或者一个公共变量读取数据,而很少的线程修改数据,那么就用读写锁。
    分别得到读锁和写锁:
    ReentrantReadWriteLock rrwl=new ReentrantReadWriteLock();
    ReadLock readL = rrwl.readLock();
    WriteLock writeL = rrwl.writeLock();

    synchronized在发生异常时,能够自动释放锁,所以不会发生死锁情况;而Lock必须在finally中主动unlock锁,否则就会出现死锁。

    参考:https://blog.csdn.net/u012100371/article/details/75270644

  • 相关阅读:
    Python 面向对象补充
    Python 多态
    Web_php_unserialize-攻防世界XCTF
    sqli-labs之Page-4
    sqli-labs之Page-3
    sqli-labs之Page-1
    DVWA-反射型XSS
    DVWA-File Upload
    DVWA-File Inclusion
    DVWA-CSRF
  • 原文地址:https://www.cnblogs.com/ljy-skill/p/10976856.html
Copyright © 2011-2022 走看看