http://www.techscore.com/tech/Java/JavaSE/Thread/3/
ここのサイトでスレッドについて調べています。
複数のスレッドが同じオブジェクトを同時に操作すると、プログラムが予想外の動作をすることがあります。そこでこの章では、複数のスレッドの動作を制御し、同じオブジェクトが同時に操作されないようにする方法を説明します。
2つのスレッドは、同じオブジェクトを並行して同時に扱うことができます。2つのスレッドがあるオブジェクトのフィールド変数を同時に書き込んだりすると、プログラムが時として意図しない動作をすることがあります。
このサイトに上のようなことが書いているのですが、「複数のスレッドが同じオブジェクトを同時に操作すると、」「2つのスレッドがあるオブジェクトのフィールド変数を同時に書き込んだりすると、」というのはどういう場合のことを言うのでしょうか?
コード public static void main(String[] args) { CountDownThread t1 = new CountDownThread("thread 1"); CountDownThread t2 = new CountDownThread("thread 2"); t1.start(); t2.start(); }
コード class CountDownThread extends Thread { private String name; public CountDownThread(String name) { this.name = name; } public void run() { for (int i = 3; i >= 0 ; i--) { try { sleep(1000); } catch (InterruptedException e) {} System.out.println(name + " : " + i); } } }
例えばこういうプログラムがあったら、どういう処理のことを言っているのでしょうか?
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/04/21 07:08
2016/04/21 07:42
2016/04/21 07:45
2016/04/21 09:04