java无限循环线程读数据问题

最近在做一个跟串口数据读取有关的软件,怎么保证线程读数据不会丢失?

大概代码是
while(true)
{
.....

if(size>0)
.....
sleep(200)
}

先搞清楚你的过程,为什么数据会丢失

while (flag) {
if (mInputStream == null)
return;
byte[] buffer = new byte[2048*2];
int readLen = mInputStream.read(buffer);
if (readLen > 0) {
byte[] data = new byte[readLen];
Log.v("Tag", readLen+"");
System.arraycopy(buffer, 0, data, 0, readLen);

                            if (mDataListener != null)
                                mDataListener.handleReceiveMessage(data);
    }
          Thread.sleep(100);

看这篇:http://bbs.csdn.net/topics/390968039