zoukankan      html  css  js  c++  java
  • 等待超时模式

     返回主页面
    1. 什么是超时等待?

    什么是超时等待?

    调用一个方法时,等待一段时间(一般给定一个时间段),如果该方法能够在给定的时间段内得到结果,那么将结果立刻返回,反之,超时返回默认结果。这就是超时等待。

    等待/通知的经典范式,即加锁,条件循环和处理逻辑三个步骤,而这种范式无法做到超时等待。

    2. 等待/通知的经典范式。
    等待/通知的经典范式,可以分为两部分,分别针对等待方(消费者)和通知方(生产者)。
     

    3. 等待超时模式
    由于经典的等待/通知范式无法做到超时等待,也就是说,当消费者在获得锁后,如果条件不满足,等待生产者改变条件之前会一直处于等待状态,在一些实际应用中,会浪费资源,降低运行效率。
    事实上,只要对经典范式做出非常小的改动,就可以加入超时等待。
    假设超时时间段是T,那么可以推断出,在当前时间now+T之后就会超时。
    定义如下变量:
    等待持续时间remaining = T;
    超时时间future = now + T。
    伪代码如下所示:
     
    long future = System.currentTimeMillis() + mills;
            long remaining = mills;
            synchronized (lock) {
                while (!condition && remaining > 0) {
                    wait(remaining);
                    remaining = future - System.currentTimeMillis();
                }
                //处理代码
            }
  • 相关阅读:
    static关键字详解
    解读equals()和hashCode()
    基于马士兵老师的高并发笔记
    scrapy安装及基本使用
    scrapy 简单操作
    python django简单操作
    Map,Filter 和 Reduce
    2017-08-06笔记
    幂等性
    Jmeter jdbc连接
  • 原文地址:https://www.cnblogs.com/tianzhiyun/p/9399207.html
Copyright © 2011-2022 走看看