够老的问题
long start = System.currentTimeMillis ();
long waitTime = timeout;
wait (waitTime);
long now = System.currentTimeMillis ();
long timeSoFar = now - start; //计算已经等待的时间
if (timeSoFar >= msecTimeout) // 如果超时,抛出TimeoutException异常
throw new TimeoutException ();