⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 waitpolicy.java

📁 提供ESB 应用mule源代码 提供ESB 应用mule源代码
💻 JAVA
字号:
/* * $Id: WaitPolicy.java 9208 2007-10-18 16:25:35Z holger $ * -------------------------------------------------------------------------------------- * Copyright (c) MuleSource, Inc.  All rights reserved.  http://www.mulesource.com * * The software in this package is published under the terms of the CPAL v1.0 * license, a copy of which has been included with this distribution in the * LICENSE.txt file. */package org.mule.util.concurrent;import edu.emory.mathcs.backport.java.util.concurrent.RejectedExecutionException;import edu.emory.mathcs.backport.java.util.concurrent.RejectedExecutionHandler;import edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor;import edu.emory.mathcs.backport.java.util.concurrent.TimeUnit;/** * A handler for unexecutable tasks that waits until the task can be submitted for * execution or times out. Generously snipped from the jsr166 repository at: <a * href="http://gee.cs.oswego.edu/cgi-bin/viewcvs.cgi/jsr166/src/main/java/util/concurrent/ThreadPoolExecutor.java"></a>. */// @Immutablepublic class WaitPolicy implements RejectedExecutionHandler{    private final long time;    private final TimeUnit timeUnit;    /**     * Constructs a <tt>WaitPolicy</tt> which waits (almost) forever.     */    public WaitPolicy()    {        // effectively waits forever        this(Long.MAX_VALUE, TimeUnit.SECONDS);    }    /**     * Constructs a <tt>WaitPolicy</tt> with timeout. A negative <code>time</code>     * value is interpreted as <code>Long.MAX_VALUE</code>.     */    public WaitPolicy(long time, TimeUnit timeUnit)    {        super();        this.time = (time < 0 ? Long.MAX_VALUE : time);        this.timeUnit = timeUnit;    }    public void rejectedExecution(Runnable r, ThreadPoolExecutor e)    {        try        {            if (e.isShutdown() || !e.getQueue().offer(r, time, timeUnit))            {                // TODO better message                throw new RejectedExecutionException();            }        }        catch (InterruptedException ie)        {            Thread.currentThread().interrupt();            throw new RejectedExecutionException(ie);        }    }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -