<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    ゞ沉默是金ゞ

    魚離不開水,但是沒有說不離開哪滴水.
    posts - 98,comments - 104,trackbacks - 0
    Future<T>:
    A Future represents the result of an asynchronous computation. Future has been provide with some really powerful methods. For Instance -
    1) We can check whether a task has been completed or not.
    2) We can cancel a task.
    3) Check whether task was cancelled or complete normally.


    Methods-


    boolean cancel(boolean mayInterruptIfRunning)
    This method does following -
    1) If the process(Thread) has not started, then cancel the thread.
    2) If the process has started, then check if 
    mayInterruptIfRunning = true ==> Inturrept the thread and cancel it
    mayInterruptIfRunning = false ==> Let it run
    This attempt will fail if the task has already completed, has already been cancelled, or could not be cancelled for some other reason.
    After this method returns, subsequent calls to isDone() will always return true.
    Subsequent calls to isCancelled() will always return true if this method returned true.


    boolean isCancelled()
        Returns true if this task was cancelled before it completed normally


    V get() throws InterruptedException, ExecutionException
    This method is a blocking call. It will cause JVM to wait if necessary for the computation to complete, and then retrieves its result.


    boolean isDone()
        Returns true if this task completed. Completion may be due to normal termination, an exception, or cancellation - in all of these cases, this method will return true.

    package com.jovialjava.blog.threads;

    import java.util.concurrent.Callable;
    import java.util.concurrent.ExecutorService;
    import java.util.concurrent.Executors;
    import java.util.concurrent.Future;

    public class FutureExample {
        
    /**
         * Executor pool is a new concept in JAVA 5+, it can help to release 
         * a thread. It maintains a pool of threads, It reuses them, also align them in 
         * a queue. Here we are creating pool of 1 thread.
         
    */
        
    private static final ExecutorService executorPool=Executors.newFixedThreadPool(5);
        
        
    public static void main(String args){
            CallableTask call 
    = new CallableTask();        
            
    try{
                
    /**
                 * Future<T> is result of asynchronous computation.
                 * It may possible that CallableTask has not started yet
                 * but 'ExecutorService' gives the result via Future
                 * Object.
                 
    */
                Future
    <String> future = executorPool.submit(call);
                
    /**
                 * We can check if CallableTask has been completed.
                 
    */
                System.out.println(
    "Status of Callable Task [Is Completed ? "+ future.isDone()+ "]");
                
    /**
                 * We can get the result of callable Task.
                 * Note : future.get() is a blocking call, It will wait until the associated process finishes.
                 
    */
                System.out.println(
    "Result of callable task ["+ future.get()+"]");
                
    /**
                 * We can cancel the task.
                 
    */
                System.out.println(
    "Trying to cancel the task [Is Cancelled ? "+ future.cancel(false)+ "]");
                
    /**
                 * We can see if the task was canceled.
                 * Returns true if this task was canceled before it completed normally
                 
    */
                System.out.println(
    "Was task canceled before normal complition ? -"+ future.isCancelled());
                
                
            }
    catch(Exception e){
                e.printStackTrace();
            }
    finally{
                executorPool.shutdownNow();
            }
            
        }

        
        
    /*
         *Callable<V> is defined as Callable<String>
         *
         
    */
        
    public static class CallableTask implements Callable<String>{
                    
            
    public String call( ){
                System.out.println(
    "Inside CALLABLE TASK");
                
    return "~~JOVIAL JAVA~~";
            }
        }    
    }
    posted on 2012-08-06 10:28 ゞ沉默是金ゞ 閱讀(774) 評論(0)  編輯  收藏 所屬分類: Java SE
    主站蜘蛛池模板: 性色av免费观看| 鲁大师在线影院免费观看| 免费不卡在线观看AV| 伊伊人成亚洲综合人网7777| 男女猛烈无遮掩视频免费软件| 啊灬啊灬别停啊灬用力啊免费看| 久久综合亚洲色hezyo| 破了亲妺妺的处免费视频国产 | 亚洲邪恶天堂影院在线观看| 在线观看免费播放av片| 亚洲国产精品久久| 免费观看美女用震蛋喷水的视频 | 亚洲男女内射在线播放| 美女巨胸喷奶水视频www免费| 国产av无码专区亚洲国产精品 | 亚洲精品免费观看| 亚洲人成网网址在线看| 18禁无遮挡无码网站免费| 精品亚洲成A人无码成A在线观看| 最近中文字幕免费mv在线视频| 亚洲五月丁香综合视频| 日本v片免费一区二区三区| 一级黄色免费大片| 亚洲激情在线观看| 麻豆国产人免费人成免费视频| 日亚毛片免费乱码不卡一区| 亚洲av永久无码制服河南实里| 在免费jizzjizz在线播| 国产精品亚洲AV三区| 亚洲国产精品嫩草影院在线观看| 最近最新高清免费中文字幕| 亚洲熟妇无码AV| 精品亚洲一区二区三区在线观看| 98精品全国免费观看视频| 亚洲av纯肉无码精品动漫| 亚洲色精品aⅴ一区区三区| 成人无码区免费A片视频WWW| 免费无码又爽又黄又刺激网站 | 1000部拍拍拍18勿入免费视频下载 | 亚洲国产成人精品无码区花野真一 | 在线播放免费人成视频在线观看|