假设有多个线程同时要从一个Vector里取数据,此时vector里只有一个元素,每个线程都先判断是否为空,然后再取,虽然判空和取的操作都是syncronized,但是,假如第一个线程判空以后,又转到第二个线程,它俩判断都不为空,这时又转回第一个线程,取完之后,转到第二个线程再取就出错了,怎么解决呢?