作成
スレッド処理(Thread, Runnable)
###title スレッドとは? ### 通常の長い処理を行うプログラムを実行すると、処理が終わるまで待ち時間が生じ、画面が固まって見えたりします。それを回避する方法として、スレッドを生成しそこで処理を行えば画面が固まったりせずに、ひとつのプログラムの中で複数の処理を平行して走らせることができます。 ###title スレッド(Thread) ###memo ①Thread クラスをextendsしたサブクラスを作成し、行いたい処理を run()メソッドに記述します。 ②①で作成したクラスのインスタンスを生成し、start() メソッドを実行することで run()メソッドが実行されます。 ###source // メイン処理 class Test { public static void main(String[] args) { // サブクラスのインスタンスを生成 ThreadTest t1 = new ThreadTest(); ThreadTest t2 = new ThreadTest(); // 平行して処理が実行されます。 t1.start(); t2.start(); } // サブクラス // Thread を extends したサブクラス class ThreadTest extends Thread { // start() で実行が開始される。 public void run() { for (int i = 0; i < 100; i++) { System.out.print(i); } } } } ###title ランナブル(Runnable) ### 他のクラスを継承しているサブクラスをスレッド化する場合は若干方法が変わり、 ①サブクラスに Runnable インタフェースを実装(implements)します。 ②そのサブクラスのインスタンスを生成します。 ③②のインスタンスを引数にし、スレッドを生成します。 ④③で作成したクラスのインスタンスを生成し、start() メソッドを実行することで run()メソッドが実行されます。 ###source class Test2 { public static void main(String[] args) { // サブクラスのインスタンスを生成 ThreadTest2 t2 = new ThreadTest2(); ThreadTest2 t4 = new ThreadTest2(); // スレッドのインスタンスを生成 Thread t1 = new Thread(t2); Thread t3 = new Thread(t4); // 平行して処理が実行されます。 t1.start() ; t3.start() ; } // サブクラス // 既に extends されている場合は Runnable を implements class ThreadTest2 extends SurfaceView implements Runnable { public void run() { for (int i = 0; i < 100; i++) { System.out.print(i); } } } }
wakatta 記法
投稿の仕方
基本的な記法
エンジニア向け記法
記法のサンプル
このコンテンツを見る