반복 메시지 목록을 통해 파일에 메시지를 쓰는 스레드를 일시 중지하고 싶습니다. 메시지 목록이 비어 있으면 스레드를 중지하고 목록에 메시지가있을 때 스레드가 다시 시작됩니다.실행중인 스레드를 일시 중지하고 필요할 때 동일한 스레드를 다시 시작하는 방법은 무엇입니까?
나는 stop, suspend(), resume 메소드가 사용되지 않음을 알고 있지만 스레드가 백그라운드에서 계속되면 CPU를 소비한다. 나는 많은 인터넷 검색을했지만 적절한 대답을 찾을 수 없습니다. 하나는
을 좀 도와주십시오 것은 여기 내 코드입니다 :
BlockingQueue가 존재 무엇private Thread mFileWriterThread = new Thread() {
@Override
public synchronized void run() {
while (mIsRunning) {
synchronized (mMessageList) {
Iterator it = mMessageList.iterator();
while ((it.hasNext())) {
String message = (String) it.next();
writeToFile(fileOutputStream, message);
mMessageList.remove(message);
}
}
}
}
};