【大喜利】【投稿~10/21(月)】買ったばかりの自転車を分解してひと言

Javaでスレッドを作成する場合、runでオーバーライドした後にstartで呼び出すのはなぜですか?間接的に呼び出されるとのことですが、runをstartが継承しているのでしょうか?
よろしくお願いします。

A 回答 (2件)

start関数の中からrun関数を実行しました。



なぜかというと、run関数には、プログラマーがやりたい処理を書きます。
それ以外のスレッドの作成処理など、自分のやりたいことと関係ないものは、runを呼び出す前に、start関数の中でやります。

http://www.techscore.com/tech/Java/JavaSE/Thread …
    • good
    • 0
この回答へのお礼

なるほどです!start関数ってそんなに色々なことやってるんですね。それにどこかでスレッド作らないとシングルスレッドのままですよね。すごく分かりやすかったです。ありがとうございました^^

お礼日時:2017/11/12 15:16

startメソッドは現在のスレッド(呼び出し元のスレッド)が実行します。


run は新たに作成されたスレッドが実行します。

startメソッドは呼び出し元のスレッドが別スレッド作成してそれを起動するメソッドです。
これを呼ばない限りスレッドは始まりません。

Javaのスレッドは 作成されて、開始が指示されると run メソッドを実行します。

run を呼び出し元のスレッドから直接呼んでも、
呼び出し元のスレッドで実行されるだけです。
    • good
    • 0
この回答へのお礼

丁寧な説明ですごく勉強になりました。教科書なんかよりもぜんぜん分かりやすかったです。ありがとうございました^^

お礼日時:2017/11/12 15:19

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


おすすめ情報