バグを見つけてもうた

まだ問題になっていないけど、もしかしたらそのうちバグになるかもしんないバグを見つけてもうた。簡単に書くとこんな感じ。

public class DataSender implements Runnable{
 private int data_;
 private SerialPort serial_;
 public DataSender(SerialPort serial){
   serial_ = serial;
 }

 public void run(){
   while(true){
     if(data_ > 0){
      serial_.send(data_);
      data_ --;
     }
     Thread.sleep(260);  
   }
 }

 public void send(int data){
   data_ = data;
 }
}

たぶん、シリアルポートにすこしづつデータを送りたいからこういう処理になっているんだと思う。

でも、これだと、短時間に連続してsendを呼ぶとデータが消えちゃう。ここはキューを使って命令をためて、それを少しづつ実行するという形式にすべきじゃないかな?デザインパターンで言うならProducer-Consumerパターンを使うべきじゃね?ということ。

うーん、言ったほうがいいのかや。