JDK5では先に入った順にsynchronizedから抜けるのですが、JDK6では後に入った順にsynchoronizedから抜けます。 ということは、synchoronizedに先に入ったスレッドは、いつまでたってもsynchoronizedから抜けれない可能性があるということです。 これって仕様なんでしょうか?
上の処理。 デバッガで追うと正しい動きするし、変数の初期値変えると挙動が変わるし、Java6のバグに見える。 whileでcontinueしたときに変数がリセットされるような、そんな感じ。 JDK1.5で動かしたときにはちゃんと動くので、コンパイラじゃなくてVMの方がくさい。 追記: 現象としては remark = true; preRemarkBreak = brk; brk = true; continue; という部分で、preRemarkBreakを変更しても、continueして戻ったところでpreRemarkBreakが元に戻っています。 HotSpotの挙動でしょうか? 基本的にはbrkがfalseのときにしかここを通らないはずなので、宣言部の初期値を boolean preRemarkBreak = false; にして逃げてます。 そこまでしてJDK1.6で動かす必要はな
Webservices in JDK 6 Posted by vivekp on December 12, 2006 at 05:33 PM | Comments (24) Webservices in JDK 6 Java SE 6 is out! Among other things it has exciting new end-to-end web services stack - JAXWS 2.0 FCS RI. Couple of main things you should know: JAXWS Tools wsimport and wsgen part of JDK Simplified deployment using Endpoint API and light-weight HTTP Server in JDK Uses JAXB 2.0, also part
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く