[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[jfriends-ml 12430] Re: SharedCounter の実験 (1) - 再送



  高橋(智)です。配信されなかったようなので再送しています。

  徹さんのサンプルを
    CPU(AMD Opteron 244) x 2, WindowsXP(x64 Edition), J2SE 5.0 Update6(ServerVM)
で起動したのですが、なぜか終了せずにインクリメントし続けるみたいです...

  なので、以下のようにmainメソッドだけを書き換えて実行してみました。
----------------------------------------------------------------------------
    public final static void main(final String[] args) throws Exception {
        SharedCounterIncrementor sci = new SharedCounterIncrementor();
        Thread t1 = new Thread(sci);
        Thread t2 = new Thread(sci);
        t1.start();
        System.out.printf("t1 started\n");
        t2.start();
        System.out.printf("t2 started\n");
        System.out.printf("start sleeping\n");
        Thread.sleep(10000);
        System.out.printf("end sleeping\n");
        t1.interrupt();
        System.out.printf("t1 interrupted\n");
        t2.interrupt();
        System.out.printf("t2 interrupted\n");
        t1.join();
        System.out.printf("t1 joined\n");
        t2.join();
        System.out.printf("t1 joined\n");
        System.out.println("Shared counter is " + sci.counter);
    }
----------------------------------------------------------------------------

  結果は以下のようになり、t1.join();が戻ってこないみたいです。
----------------------------------------------------------------------------
C:\tmp>java SharedCounterIncrementor
t1 started
t2 started
start sleeping
end sleeping
t1 interrupted
t2 interrupted
----------------------------------------------------------------------------


"TAKAHASHI,Toru" wrote:
snip
>                                     Name: SharedCounterIncrementor.java
>    SharedCounterIncrementor.java    Type: text/java
>                                 Encoding: Base64

-- 
高橋智宏
  Java読書会( http://www.javareading.com/bof/ )