JavaA2Z

KAB-studio > プログラミング > JavaA2Z > Runnableとは

Runnable

日本語 実行可能
英語 run able
ふりがな らんなぶる
フリガナ ランナブル

解説

参考サイト


(KAB-studioからのおしらせです)

サンプルプログラム(とか)サンプルを別ウィンドウで表示サンプルをクリップボードへコピー(WindowsでIEの場合のみ)

// Sample.java
public class Sample
{
    public static void main( String[] args )
    {
        // TestRunnerクラスを作ります。
        TestRunner testRunner1 = new TestRunner();
        TestRunner testRunner2 = new TestRunner();

        // toString()の結果を出力しておきます。
        System.out.println( testRunner1.toString() );
        System.out.println( testRunner2.toString() );
        // TestRunner@152544e
        // TestRunner@17471e0

        // Threadクラスに渡します。
        Thread thread1 = new Thread( testRunner1 );
        Thread thread2 = new Thread( testRunner2 );

        // そして実行。
        thread1.start();
        thread2.start();
        // TestRunner@152544e : 0 : 4
        // TestRunner@17471e0 : 0 : 3
        // TestRunner@17471e0 : 1 : 9
        // TestRunner@152544e : 1 : 8
        // TestRunner@152544e : 2 : 7
        // TestRunner@17471e0 : 2 : 1
        // TestRunner@17471e0 : 3 : 3
        // TestRunner@17471e0 : 4 : 3
        // TestRunner@152544e : 3 : 5
        // TestRunner@17471e0 : 終了。
        // TestRunner@152544e : 4 : 8
        // TestRunner@152544e : 終了。

        // このように、ふたつとも関係なく実行されます。
        // そして、main()メソッドは先に終了します。
        System.out.println( "main() : 終了。" );
        // main() : 終了。
        // ↑これは、上のスレッドでの出力のどこかに
        // 挟まれて出力されると思います。
    }
}

/**
*   別スレッドとして実行するためのクラス。
*/
class TestRunner implements Runnable
{
    /**
    *   Runnableクラスのrun()メソッドを
    *   オーバーライドしたメソッド。このメソッドが
    *   別スレッドとして呼び出されます。
    */
    public void run()
    {
        // 5周ループします。
        forint iF1 = 0; iF1 < 5; ++iF1 )
        {
            // 待機秒数を作ります。
            int sleepSecond = ( ( (int)( Math.random() * 10 ) ) + 1 );
            // 自分自身のtoString()と、カウンター、それと待機秒数を出力します。
            System.out.println( this.toString() + " : " + iF1 + " : " + sleepSecond );
            try
            {
                // ランダムで、1~10秒間待ちます。
                Thread.sleep( sleepSecond  * 1000 );
            }
            catch( InterruptedException e )
            {
                // sleep()メソッドが途中で中断されると
                // InterruptedException例外が投げられます。
                // 滅多にないですが。
                e.printStackTrace();
            }
        }

        // 終わりました。
        System.out.println( this.toString() + " : 終了。" );
    }
}
// Sample.java
public class Sample
{
    public static void main( String[] args )
    {
        // TestRunnerクラスを作ります。
        TestRunner testRunner1 = new TestRunner();
        TestRunner testRunner2 = new TestRunner();

        // toString()の結果を出力しておきます。
        System.out.println( testRunner1.toString() );
        System.out.println( testRunner2.toString() );
        // TestRunner@152544e
        // TestRunner@17471e0

        // Threadクラスに渡します。
        Thread thread1 = new Thread( testRunner1 );
        Thread thread2 = new Thread( testRunner2 );

        // そして実行。
        thread1.start();
        thread2.start();
        // TestRunner@152544e : 0 : 4
        // TestRunner@17471e0 : 0 : 3
        // TestRunner@17471e0 : 1 : 9
        // TestRunner@152544e : 1 : 8
        // TestRunner@152544e : 2 : 7
        // TestRunner@17471e0 : 2 : 1
        // TestRunner@17471e0 : 3 : 3
        // TestRunner@17471e0 : 4 : 3
        // TestRunner@152544e : 3 : 5
        // TestRunner@17471e0 : 終了。
        // TestRunner@152544e : 4 : 8
        // TestRunner@152544e : 終了。

        // このように、ふたつとも関係なく実行されます。
        // そして、main()メソッドは先に終了します。
        System.out.println( "main() : 終了。" );
        // main() : 終了。
        // ↑これは、上のスレッドでの出力のどこかに
        // 挟まれて出力されると思います。
    }
}

/**
*   別スレッドとして実行するためのクラス。
*/
class TestRunner implements Runnable
{
    /**
    *   Runnableクラスのrun()メソッドを
    *   オーバーライドしたメソッド。このメソッドが
    *   別スレッドとして呼び出されます。
    */
    public void run()
    {
        // 5周ループします。
        for( int iF1 = 0; iF1 < 5; ++iF1 )
        {
            // 待機秒数を作ります。
            int sleepSecond = ( ( (int)( Math.random() * 10 ) ) + 1 );
            // 自分自身のtoString()と、カウンター、それと待機秒数を出力します。
            System.out.println( this.toString() + " : " + iF1 + " : " + sleepSecond );
            try
            {
                // ランダムで、1~10秒間待ちます。
                Thread.sleep( sleepSecond  * 1000 );
            }
            catch( InterruptedException e )
            {
                // sleep()メソッドが途中で中断されると
                // InterruptedException例外が投げられます。
                // 滅多にないですが。
                e.printStackTrace();
            }
        }

        // 終わりました。
        System.out.println( this.toString() + " : 終了。" );
    }
}

この単語を含むページ

「みだし」に含まれているページ

「解説」に含まれているページ

「サンプルプログラムとか」に含まれているページ

はてなブックマーク 詳細を表示 はてなブックマーク ブックマーク数
livedoorクリップ 詳細を表示 livedoorクリップ ブックマーク数
Yahoo!ブックマーク 詳細を表示 users
del.icio.us 登録する RSSに登録
サンプルを別ウィンドウで表示
サンプルをクリップボードへコピー(WindowsでIEの場合のみ)
update:2005/05/18
このページは、Javaプログラミング言語についての用語を網羅した辞書「JavaA2Z」の一ページです。
詳しくは「JavaA2Z」表紙の説明をご覧ください。