<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
    About Runnable:
    Runnable interface is implemented by the Thread class as well and it's a common protocol for all the objects who wish to execute in a different thread. It's one of the ways of creating threads in Java. The other way to create a thread is by subclassing the Thread class. A class implementing Runnable interface can simply pass itself to create a Thread instance and can run thereafter. This eliminates the need of subclassing the Thread class for the purpose of executing the code in a separate thread.
    As long as we don't wish to override other methods of the Thread class, it may be a better idea to implement the Runnable interface to enable multithreading capabilities to a class than enabling the same by extending the Thread class.

    About Callable:
    The designers of Java felt a need of extending the capabilities of the Runnable interface, but they didn't want to affect the uses of the Runnable interface and probably that was the reason why they went for having a separate interface named Callable in Java 1.5 than changing the already existing Runnable interface which has been a part of Java since Java 1.0.

    Similarities:
    1) Both threads can be used to cause a separate stack for a thread.

    2) Both has only one method : Inside Runnable it is called as
    public abstract void run( );
    Inside callable the method is being called as
    public abstract call() ;
    (Note : V can be any valid object in JAVA)

    Differences:

    1) Return Type -
    public abstract void run() --> Return type "void"
    public abstract call() --> Return type "Any valid JAVA Object"

    2) Run method can not throw any checked Exception, whereas
    public abstract call() throw checkedException
    Call method can throw any checked Exception.

    package com.jovialjava.blog.threads;

    import java.util.concurrent.Callable;
    import java.util.concurrent.FutureTask;

    /**
     * This program has been written to demonstrate the usage
     * of Runnable and Callable<String> Interfaces. Jovial Java makes
     * no guarantee of any harm or any problem caused by using this 
     * program.
     
    */
    public class Run_Vs_Call {
        
        
        
    public static void main(Stringargs){
            CallableTask call 
    = new CallableTask();
            RunnableTask run 
    = new RunnableTask();
            
    try{
                
    /*
                 * We need a Future task Launcher to launch Callable Class
                 
    */
                FutureTask
    <String> callTask = new FutureTask<String>(call);
                
    /*
                 * We need a Thread Launcher to to launch Runnable Class
                 
    */
                Thread runTask 
    = new Thread(run);
                callTask.run();
                runTask.start();
                
                
    /*
                 * Get is a blocking call, JVM will wait here until Call task
                 * finishes execution.
                 
    */
                System.out.println(callTask.get());
                
                
            }
    catch(Exception e){
                e.printStackTrace();
            }
            
        }
        
        
    /*
         *Callable<V> is defined as Callable<String>
         *
         
    */
        
    public static class CallableTask implements Callable<String>{
                    
            
    public String call( ){
                System.out.println(
    "Inside call method..!!");
                
    return "hello";
            }
        }    
        
    /*
         * Runnable Interface Implementation
         
    */
        
    public static class RunnableTask implements Runnable{
            
    public void run(){
                System.out.println(
    "Inside Run Method, I can not return any thing");
            }
        }

    }
    posted on 2012-08-06 10:24 ゞ沉默是金ゞ 閱讀(849) 評論(0)  編輯  收藏 所屬分類: Java SE
    主站蜘蛛池模板: 亚洲熟女综合色一区二区三区 | 国产精品亚洲mnbav网站 | 中国一级毛片视频免费看| 免费中文字幕一级毛片| 亚洲AV一区二区三区四区| 成全视成人免费观看在线看| 亚洲免费一区二区| WWW免费视频在线观看播放| 久久久久亚洲AV成人网人人软件| 和老外3p爽粗大免费视频| 自拍偷自拍亚洲精品第1页| 久久国产乱子伦精品免费强| 亚洲AV成人精品网站在线播放| 美女被艹免费视频| 无人影院手机版在线观看免费| 亚洲永久精品ww47| 亚洲а∨精品天堂在线| 最近中文字幕免费2019| 亚洲成人黄色在线| 成全视频免费观看在线看| 国产精品色午夜免费视频| 亚洲美免无码中文字幕在线| 小说专区亚洲春色校园| 免费国产作爱视频网站| 亚洲欧美国产国产综合一区| 亚洲国产午夜福利在线播放| 国产一级一毛免费黄片| 亚洲成a人片在线观看播放| 在线免费观看一区二区三区| 亚洲精品福利网泷泽萝拉| 免费黄网在线观看| 亚洲国产成a人v在线| 日本免费无遮挡吸乳视频电影| 国产成人无码精品久久久久免费 | 在线亚洲精品福利网址导航| 久久久久久国产精品免费免费男同| 亚洲国产精品视频| 午夜在线免费视频| 亚洲国产一区视频| 8x成人永久免费视频| 国产精品成人亚洲|