- PR -

スレッドの勉強をしています。

1
投稿者投稿内容
ゆっき
会議室デビュー日: 2006/09/29
投稿数: 10
投稿日時: 2006-10-18 14:35
public class ThreadTest extends Thread {
 public static void main( String[] args ) {
  ThreadTest thread1 = new ThreadTest() ;
  ThreadTest thread2 = new ThreadTest() ;
  ThreadTest thread3 = new ThreadTest() ;
  ThreadTest thread4 = new ThreadTest() ;
  ThreadTest thread5 = new ThreadTest() ;
  thread1.start() ;
  thread2.start() ;
  thread3.start() ;
  thread4.start() ;
  thread5.start() ;
 }

   public void run() {
    for( int i = 0 ; i <= 10 ; i++ ) {
     System.out.println( getName() + ":" + i ) ;
     try {
      sleep( 1000 ) ;
    } catch( Exception e ) {
   }
  }
 }
}
このように5つに分岐するスレッドの練習をしています。
runメソッドで走らせるのですが、thread1はこのままの処理でいいのですが
thread2は10づつ増え、thread3は100づつ増え・・・と10の倍数づつ増えるようにしたいのですが
別クラスに持てば出来るのですがスマートではないと怒られました。
runメソッドでどのように処理すればよいかご教示いただきたいのですが
わかりますでしょうか…。初歩的な質問で申し訳ありません。
冬寂
ぬし
会議室デビュー日: 2002/09/17
投稿数: 449
投稿日時: 2006-10-18 15:01
えー・・・答えじゃなくてすみませんが・・・
引用:

ゆっきさんの書き込み (2006-10-18 14:35) より:
別クラスに持てば出来るのですがスマートではないと怒られました。


先輩にでも言われたのでしょうか?
だとしたら、自分で考えて、それでも分からなかったら先輩に聞く、というのが人間として当たり前の反応だと思うし、人間関係的にもうまく行くと思うのですが・・・

# Java は分からないけど、コンストラクタについて勉強してみると何か分かるかもしれない。
nagise
ぬし
会議室デビュー日: 2006/05/19
投稿数: 1141
投稿日時: 2006-10-18 15:14
引用:

ゆっきさんの書き込み (2006-10-18 14:35) より:
thread2は10づつ増え、thread3は100づつ増え・・・と10の倍数づつ増えるようにしたいのですが
別クラスに持てば出来るのですがスマートではないと怒られました。
runメソッドでどのように処理すればよいかご教示いただきたいのですが
わかりますでしょうか…。初歩的な質問で申し訳ありません。



「10づつ増え」の主語はなんですか?
System.out.println( getName() + ":" + i ) ;
で表示される値のことでしょうか?

フィールドを作り
コード:
private int di;


コンストラクタで初期値を設定し
コード:
public ThreadTest(int di) {
    this.di = di;
}


出力するときに掛けてやればよいのです。
コード:
System.out.println( getName() + ":" + i * this.di ) ;



スレッド云々の前にクラスについての理解を深めたほうがよいかもしれませんね。
ゆっき
会議室デビュー日: 2006/09/29
投稿数: 10
投稿日時: 2006-10-18 16:46
すいません、出力結果を
thread1:0
thread2:10
thread3:100
thread4:1000
thread5:10000
thread1:1
thread2:20
thread3:200
thread4:2000
thread5:20000
.
.
.
thread2:100
thread3:1000
thread4:10000
thread5:100000
thread1:10

のようにしたいのです。

nagise
ぬし
会議室デビュー日: 2006/05/19
投稿数: 1141
投稿日時: 2006-10-18 17:21
では、先ほどの説明どおりですね。
1

スキルアップ/キャリアアップ(JOB@IT)