授業でこのコードがどのようなことを行っているのかを問われたのですが、全然分からず周りに聞いても理解できなかったのでここで質問してみることになりました。何分初心者ですので、出来るだけわかりやすく教えていただけると幸いです。
エラーメッセージ
該当のソースコード
java
1#!/bin/bash 2 3echo '>' javac -encoding UTF-8 j1/PrintArgs.java 4javac -encoding UTF-8 j1/PrintArgs.java 5echo done. 6sleep 1 7 8echo '>' java j1.PrintArgs ABC 123 9sleep 1 10java j1.PrintArgs ABC 123 11echo done. 12sleep 1 13 14echo "type return to continue / CTRL+C to quit" 15read input_str 16 17echo '>' javac -encoding UTF-8 j1/TestThread.java 18javac -encoding UTF-8 j1/TestThread.java 19echo done. 20sleep 1 21 22echo To stop the TestThread program, press CTRL+C. 23sleep 1 24echo '' 25sleep 1 26 27echo '>' java j1.TestThread 28sleep 1 29java j1.TestThread 30 31```java 32package j1; 33 34//----------------------------------------------------------- 35public class TestThread{ 36 public static void main(String[] args){ 37 System.out.print("TestThread started."); 38 39 MyThread mt1 = new MyThread("1 ", 1300); 40 MyThread mt2 = new MyThread("2 ", 2900); 41 42 mt1.start(); 43 mt2.start(); 44 } 45}; 46//----------------------------------------------------------- 47class MyThread extends Thread { 48 String str; 49 int msec; 50 51 MyThread(String txt, int ms) { 52 this.str = txt; 53 this.msec = ms; 54 } 55 public void run() { 56 while(true) { 57 try { 58 System.out.print(this.str); 59 sleep(msec); // tミリ秒動作休止 60 } catch(InterruptedException e) { 61 break; 62 }
試したこと
ここに問題に対して試したことを記載してください。
補足情報(FW/ツールのバージョンなど)
コンパイルはbashで行いました。
ここにより詳細な情報を記載してください。
周囲に聞いて理解できなかったことが全くの赤の他人に聞いて理解できると思えたのはなぜでしょう。
それに授業なら先生に聞くべきでは。
どのような説明をされて、そのうち何を理解できなかったのでしょうか?
それを踏まえた上での質問でないと、同じことを繰り返す危険性が高いです。
まるきりの初心者にスレッド(Threadクラス)の問題が出るとはちょっと考えづらいです。
大変失礼いたしました。正確には下記のコードを授業で扱い、上記のものは各自で取り組むかたちなのです。なので、友人たちも完璧に把握できているわけではないので、こちらで聞こうと思った次第です。下のものなら何とか分かるので、それに基づいて説明してくれるとありがたいです。
補足として、私はC言語を前期に一通りやりましたが、javaに関してはずぶの素人という意味です。分かりにくくてすみません。
#!/bin/bash
echo '>' javac -encoding UTF-8 j1/Hello.java
sleep 1
javac -encoding UTF-8 j1/Hello.java
echo done.
sleep 1
echo '>' java j1.Hello
echo '( >' java j1/Hello 'でも起動できる)'
sleep 1
java j1.Hello
echo done.
sleep 1
echo '>' hexdump -C j1/Hello.class
sleep 1
hexdump -C j1/Hello.class
echo "type Return(Enter) to run next command / CTRL+C to quit"
read input_str
echo '>' javac -encoding UTF-8 j1/HelloNW.java
sleep 1
javac -encoding UTF-8 j1/HelloNW.java
echo done.
sleep 1
echo '>' java j1.HelloNW
sleep 1
java j1.HelloNW
echo done.
shellの処理を説明なのか、プログラムを説明なのか不明ですね。
授業ってことは、学校での問題なんだから先生に聞くのが一番かと。
ここで聞くより、金払って授業受けてるんだからもったいないですよ。
スレッドの問題が各自で取り組むべきものとして出題されたなら、尚更ここで一から十まで聞いてもほとんど意味が無いです。スレッドは実際に自分で動かしてみないと分からない(提示のコードはあまり動いてる感が感じられないように思うので、仮に動かしても最初はなかなかピンとこないかも?)ので、既に一部、指摘があるように、まずは自分でコードを動かし、調べて何が分からないのかを明確にしてから質問することをお勧めします。
多くの返信ありがとうございます。ご指摘の通り、教授に聞くなどして自分でもう少し頑張ろうと思います。次回以降、もしよろしければお答えいただければ幸いです。
質問は編集できます。
あなたの回答
tips
プレビュー