このウィキの読者になる
更新情報がメールで届きます。
このウィキの読者になる
カテゴリー
最近更新したページ
最新コメント
FrontPage by awesome things!
FrontPage by check it out
FrontPage by awesome things!
FrontPage by check it out
FrontPage by awesome things!
FrontPage by awesome things!
FrontPage by awesome things!
FrontPage by awesome things!
FrontPage by awesome things!
Menu
Wiki内検索

スレッドのサンプルソース

package sample;

public class Main {

  public static void main(String [] args) throws InterruptedException{

    Execute exe = new Execute();
    exe.init();
    exe.exe();

    exe.exe();
  }
}

package sample;

import java.util.concurrent.CopyOnWriteArrayList;

public class Execute {

  CopyOnWriteArrayList<String> wordList = new CopyOnWriteArrayList();

  public void init(){

    Sab sab = new Sab();
    Thread saThread = new Thread(sab);
    saThread.start();
    sab.setWrodList(wordList);

  }

  public void exe() throws InterruptedException {

    //wordListに詰めてる間は、sabの方では詰められた文字列だけ常に出力させ続けたい。
    for(int i=0;i<10;i++){
      wordList.add("hoge"+i );
    }

    //10秒ごとに出力させているwordListの中身を一つずつ減らしていきたい。
    for(int i=0;i<10;i++){
      wordList.remove(9-i);
    }
  }
}

package sample;

import java.util.Iterator;
import java.util.concurrent.CopyOnWriteArrayList;

public class Sab implements Runnable  {

  CopyOnWriteArrayList wordList = new CopyOnWriteArrayList();

  public void run() {
    //ループさせ続けて、メイン側でwordListにwordを挿入したり削除したりする。
    //wordListに入っている情報を出力させつづけたい
    while(true){
      //int size = wordList.size();
      CopyOnWriteArrayList tempWordList = wordList;
      Iterator ite = tempWordList.iterator();
      if(null != ite){
        while(ite.hasNext()){
          String str = (String)ite.next();
          System.out.println(str);
        }
        System.out.println("-------------------");
      }else{
        System.out.println("現在wordlistの中身は空です。");
      }
      try {
        Thread.sleep(1000);
      } catch (InterruptedException e) {
        // TODO 自動生成された catch ブロック
        e.printStackTrace();
      }
    }
  }

  public void setWrodList(CopyOnWriteArrayList wordList){
    this.wordList = wordList;
  }
}

2006年05月16日(火) 14:48:50 Modified by warp1030




スマートフォン版で見る