zoukankan      html  css  js  c++  java
  • JAVA同步

    ***仅为自己学习笔记

    sysnchronized(包括块和方法)

    sysnchronied适合较少的任务,lock适合较大的并发量

    sysnchronied执行线程时,其他线程只能在线程池中等待,等释放锁时,线程池中的线程抢锁。

    wait()释放锁,释放CPU;notify(),notifyAll()唤醒

    sleep()释放CPU,不释放锁。时间到后,最懂唤醒。

    同步代码块中条件,即锁是唯一的,只有锁相同,才可以同步

    lock即对每一个锁加上一个监听器,直接对监听器操作。需要在最后时释放锁

    Lock lock = new ReentrantLock();  创建锁

    Condition con1 = lock.newCondition(); 获取锁上的监听器;可以一个锁上加上多组监听器

    Condition con1 = lock.newCondition();

    lock.lock() 获取锁

    lock.unlock() 释放锁

    trylock()获取锁返回true

    sysnchronied同步过程中,其他线程必须等待进行中的线程任务结束。

    ReentrantLock则等待中的线程可被打断等待状态

  • 相关阅读:
    DES加密/解密
    HMACSha1加密方法
    .Net 计算文件大小函数
    maven项目打包
    08.29
    keep健身计划
    正则验证表单内容
    高德地图API
    Invalid location of tag (div)。
    08.15
  • 原文地址:https://www.cnblogs.com/GlazedCat/p/6538414.html
Copyright © 2011-2022 走看看