Runnable

1301 ワード

JavaではRunnableインタフェースを実装することでマルチスレッドを実装することもでき、Runnableインタフェースでは抽象的な方法を定義しています.
public void  run();
【Runnableインタフェースによるマルチスレッド化】
クラス名implements Runnable{
属性...;
方法...;
public void run(){//Runnableインタフェースのrun()メソッドの上書き
スレッド本体; 
    }

例:
package ThreadDemo01;



class MyThread1 implements Runnable {

	private String name;



	public MyThread1(String name) {

		this.name = name;

	}



	public void run() {

		for (int i = 0; i < 10; i++) {

			System.out.println(name + "  ,i=" + i);

		}

	}

}



public class RunnableDemo01 {

	public static void main(String args[]) {

		MyThread1 mt1 = new MyThread1("  A");//    Runnable    

		MyThread1 mt2 = new MyThread1("  B");//    Runnable    

		Thread t1 = new Thread(mt1);//    Thread   

		Thread t2 = new Thread(mt2);//    Thread   

		t1.start();//     

		t2.start();

	}

}


結果:
スレッドA運転、i=0スレッドB運転、i=0スレッドB運転、i=1スレッドB運転、i=2スレッドB運転、i=3スレッドB運転、i=4スレッドB運転、i=5スレッドB運転、i=6スレッドB運転、i=7スレッドB運転、i=8スレッドB運転、i=9スレッドA運転、i=1スレッドA運転、i=2スレッドA運転、i=3スレッドA運転、i=4スレッドA運転、i=5スレッドA運転、i=6スレッドA運転、i=7スレッドA運転、i=8スレッドA運転、i=9
誰が先にCPUを強盗して先に誰を実行しても、その方式にかかわらず、最終的にはThreadクラスに頼ってスレッドを起動しなければならない.
Threadの欠点は単に継承することしかできないことです
Runnableインタフェースは継承の欠陥、、、特性を補う