<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 ゞ沉默是金ゞ 閱讀(780) 評論(0)  編輯  收藏 所屬分類: Java SE
    主站蜘蛛池模板: 成人免费男女视频网站慢动作| 欧洲人免费视频网站在线| 免费人成视频在线| 亚洲一级大黄大色毛片| 中文字幕免费观看| 亚洲国产情侣一区二区三区| 亚洲免费视频播放| 亚洲熟妇无码一区二区三区导航| 24小时日本在线www免费的| 亚洲va中文字幕| 国产一级一片免费播放| 久久久WWW成人免费精品| 免费一级毛片在线播放放视频| 国产乱色精品成人免费视频| 一边摸一边桶一边脱免费视频| 中文字幕精品无码亚洲字| 国产羞羞的视频在线观看免费| 亚洲精品自产拍在线观看动漫| 午夜性色一区二区三区免费不卡视频| 2020国产精品亚洲综合网| 国产美女无遮挡免费网站| 午夜成人无码福利免费视频| 亚洲AV无码久久精品成人| 中文字幕无码播放免费| 国产精品国产亚洲区艳妇糸列短篇 | 在线视频亚洲一区| 久久亚洲AV无码西西人体| 无码人妻久久一区二区三区免费 | 国产一级黄片儿免费看| 久久精品国产亚洲精品2020| 在线免费观看一级毛片| 国产精品99爱免费视频| 久久国产亚洲高清观看| 最好免费观看韩国+日本 | 国产精品另类激情久久久免费| 成人免费网站久久久| 亚洲精品美女视频| 国产高清免费在线| 无码午夜成人1000部免费视频| 亚洲av日韩av永久无码电影| 亚洲国产精品无码久久SM |