ワーカースレッドだと複雑な処理は難しいでしょう
JAVAなら割り込みメソッドがちゃんと用意されてるみたいです
http://www.javaworld.jp/technology_and_programming/-/10795-5.html