나는 다른 스레드에서 특정 기능을 실행하기를 원하는 안드로이드 응용 프로그램을 개발 중입니다. 이제이 스레드가 실행 중일 때 다른 스레드를 만들지 않으려 고합니다. 그래서 기본적으로, 나는 주 스레드가 스레드가 실행 중인지 확인하기를 원한다. 그렇다면 스레드를 우회하기를 원한다. 그렇지 않다면 나는 스레드를 생성하고 그 함수를 실행하기를 원한다. 어떻게해야합니까?스레드가 실행 중인지 확인하는 방법은 무엇입니까?
답변
그런 경우에는 Future
을 사용하는 것이 좋습니다. 코드를 FutureTask
으로 지정하십시오. Future.isDone
을 사용하면 Future
이 완료되었는지 여부를 알려줍니다. 그리고 그렇다면 값을 돌려 줄 것입니다.
좋은 점은 동일한 스레드를 사용하여 미래의 코드 블록을 여러 개 실행할 수 있다는 것입니다.
은 당신이 현재있는 경우 :
Runnable myRunnable;
Thread t = new Thread(myRunnable);
이제 당신은해야합니다
Future<Void> future = new FutureTask<Void>(myRunnable);
ExecutorService ex= Executors.newFixedThreadPool(1);
ex.submit(future);
future.isDone
당신에게 원하는을 줄 것이다. 재사용을 계속 할 수 있습니다 ex
Future.isDone이 false를 반환하면 호출이 반환 될 때까지 Future가 아직 완료되지 않았습니까? –
예. 설명서에 나와 있습니다. – Jatin
흠 .. 나는이 'IsAlive', 'IsDone'호출에 대해 매우 의심 스럽다. 다른 코어에서 동시에 실행중인 스레드/작업 상태에 대한 일부 표시를 반환한다. boolean이 다시 계산 될 때 Bt는 더 이상 유효하지 않을 수 있습니다. –
Thread.isAlive() 방법을 확인할 수 있습니다.
이 스레드가 살아 있는지 테스트합니다. 이 시작되었고 아직 죽지 않은 스레드는 살아 있습니다.
Thread.isAlive가 true를 반환하면 반환 할 때까지 스레드가 아직 살아 있습니까? –
@MartinJames 예 – TN888
@ Ty221 OK. Thread.isAlive 호출이 상태를 확인한 후 반환하기 전에 스레드가 정상적으로 종료되지 않도록하는 방법이 궁금합니다. –
나는 이것을 사용했다, 당신은 스레드에 대해 조금 알 수 있도록 그는
if (thread.getState() == Thread.State.NEW)
{
thread.start();
}
- 1. 내 스레드가 실행 중인지 확인하는 방법 Java
- 2. 스레드가 C#에서 실행 중인지 확인하는 방법?
- 3. 타이머 스레드가 실행 중인지 확인하는 방법
- 4. 스레드가 Android에서 실행 중인지 확인하는 방법
- 5. 스레드가 실행 중인지 또는 안드로이드에서 대기 중인지 확인하는 방법
- 6. 부모 스레드가 실행 중인지 확인하십시오.
- 7. Mac에서 비디오가 실행 중인지 확인하는 방법은 무엇입니까?
- 8. 서버가 연결되어 실행 중인지 확인하는 방법은 무엇입니까?
- 9. 모노 서비스로 실행 중인지 확인하는 방법은 무엇입니까?
- 10. 화면 보호기가 실행 중인지 확인하는 방법은 무엇입니까?
- 11. Hadoop 데몬이 실행 중인지 확인하는 방법은 무엇입니까?
- 12. hdfs가 실행 중인지 확인하는 방법은 무엇입니까?
- 13. 타이머가 계속 실행 중인지 확인하는 방법은 무엇입니까?
- 14. 스크립트가 iframe에서 실행 중인지 확인하는 방법은 무엇입니까?
- 15. 프로세스가 C로 실행 중인지 확인하는 방법은 무엇입니까?
- 16. 스크립트가 tty에서 실행 중인지 확인하는 방법은 무엇입니까?
- 17. 다른 레코더가 실행 중인지 확인하는 방법은 무엇입니까?
- 18. Javaprocess가 아직 실행 중인지 확인하는 방법은 무엇입니까?
- 19. 스크린 세이버가 실행 중인지 확인하는 방법은 무엇입니까?
- 20. 셀렌 서버가 실행 중인지 확인하는 방법은 무엇입니까?
- 21. 함수 인스턴스가 실행 중인지 확인하는 방법은 무엇입니까?
- 22. doctest에서 코드가 실행 중인지 확인하는 방법은 무엇입니까?
- 23. Cloud9에서 앱을 실행 중인지 확인하는 방법은 무엇입니까?
- 24. 웹 서버에서 실행 중인지 확인하는 방법은 무엇입니까?
- 25. ipython qtconsole을 실행 중인지 확인하는 방법은 무엇입니까?
- 26. 파이썬 스레딩 - 스레드가 이미 실행 중인지 확인하는 방법?
- 27. ExecutorService 스레드 풀에서 스레드가 실행 중인지 확인하는 방법
- 28. 부스트 스레드가 실행 중인지 확인하고 죽이는 방법
- 29. 실행 코드가 IIS 또는 NUnit에서 실행 중인지 확인하는 방법은 무엇입니까?
- 30. 파이썬에서 하나의 스레드 인스턴스 만 실행 중인지 확인하는 방법은 무엇입니까?
좋아 잘 작동. 'Thread' 인터페이스는 무엇을 제공합니까? 힌트 :'isAlive()'를 보라. – andy256
스레드에서 while (true) 루프를 실행하십시오. 스레드가 일부 synchro 객체의 맨 위에 대기하도록하십시오. 함수 실행을 원하면 싱크로를 신호하십시오. 모호한 수표가 필요하지 않습니다. CPU주기가 필요한 –
. 스레드가 완료되면 이벤트를 보내는 별도의 클래스를 추가하는 것이 가장 좋습니다. 한편 isBusyFlag는 이벤트가 아직 전송되지 않은 경우 true로 유지됩니다. 따라서 CPU주기가 줄어 듭니다. – KarelG