<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
    主站蜘蛛池模板: 91黑丝国产线观看免费| 人体大胆做受免费视频| 97青青草原国产免费观看| 亚洲精品国产品国语在线 | 亚洲高清中文字幕免费| 免费A级毛片无码免费视| 亚洲熟女www一区二区三区| 在线观看人成网站深夜免费| 亚洲欧美日韩国产成人| 日本无吗免费一二区| 黄色一级免费网站| 国产亚洲AV夜间福利香蕉149| 国产午夜无码片免费| 亚洲av福利无码无一区二区| 99精品国产成人a∨免费看| 亚洲av无码不卡久久| 四虎www免费人成| 污污视频免费观看网站| 国产AV无码专区亚洲AV漫画| 免费91最新地址永久入口| 亚洲第一成年网站大全亚洲| 无人在线观看完整免费版视频| 亚洲狠狠婷婷综合久久| 亚洲女同成人AⅤ人片在线观看| 在线观看免费视频一区| 亚洲国产精品日韩在线观看 | 国产成人精品免费视频大全五级 | 日亚毛片免费乱码不卡一区| 国产成人亚洲综合无码精品| 精品免费人成视频app| 亚洲AV无码一区二区三区电影| 亚洲日韩VA无码中文字幕| 亚洲精品免费在线观看| 久久亚洲精品国产精品婷婷| 亚洲精品无码专区2| 最好看的中文字幕2019免费| 亚洲AV一区二区三区四区| 亚洲av日韩av高潮潮喷无码| 成年性羞羞视频免费观看无限| A国产一区二区免费入口| 亚洲区精品久久一区二区三区|