ソースも見ないで恐縮ですが、lockからmessageベースに移行すると
スレッドをまたがるglobalなデータはどうやって効率よく共有するんですか?
同期messageでgetter/setter呼出し、なんてのはずいぶん大変そうな気がしますが。