Che cos'è lo Thread.State
di una discussione dopo Thread.yield()
? È un Thread.State.WAITING
? Grazie.Qual è il Thread.State di una discussione dopo Thread.yield()?
5
A
risposta
5
No, il thread sarà ancora nello stato RUNNABLE
. Notare che RUNNABLE
significa che un thread è disponibile per essere eseguito e potrebbe essere attualmente in esecuzione o in attesa del proprio turno. Thread.STATE
non fa distinzione tra un thread attualmente in esecuzione e un thread che è pronto per essere eseguito, entrambi sono RUNNABLE
.
Un thread solo entrare nello stato WAITING
quando uno wait()
, join()
o LockSupport.park()
è stato chiamato.
Chiamando il metodo Thread.yield()
, il thread attualmente in esecuzione sta rinunciando volontariamente alla propria porzione di tempo CPU. Questo thread passa quindi dal running back allo stato ready.
Problemi correlati
- 1. pianificazione di una discussione dopo una discussione nell'applicazione iphone
- 2. Thread.Join vs Thread.State
- 3. Qual è la differenza tra una discussione e un gestore
- 4. Qual è il "costo" approssimativo di una discussione nei cicli e nella memoria della CPU?
- 5. Coroutine è una nuova discussione in Unity3D?
- 6. Determinazione dell'origine di una discussione
- 7. Sposta QTcpSocket in una nuova discussione dopo l'avvio della connessione
- 8. Qual è la differenza tra Thread.yield() e Thread.sleep (0) in Java?
- 9. Arresto forzato di una discussione
- 10. Subprocesso Python.Popen da una discussione
- 11. Qual è la differenza tra partenza Discussione() e run Runnable()
- 12. Come fermare una discussione?
- 13. Come creare una discussione?
- 14. È necessario disporre o terminare una discussione in C# dopo l'uso?
- 15. In C++ 11, qual è il punto di una discussione che "non rappresenta un thread di esecuzione"?
- 16. Qual è il simbolo di una coda?
- 17. Qual è il costo di una dichiarazione
- 18. Creazione di una discussione in python
- 19. Interrompere una discussione in DatagramSocket.receive
- 20. Discussione sicuro Mersenne Twister
- 21. Stream.parallel() usa una nuova discussione?
- 22. Come arrestare incondizionatamente una discussione
- 23. Progettazione di una classe sicura discussione
- 24. Modulo TopMost in una discussione?
- 25. Come ottenere il nome di una discussione Win32?
- 26. Come posso misurare il tempo di una discussione in C#?
- 27. Ottenere una discussione da Id
- 28. Impostazione di una discussione con bash
- 29. Come creare una discussione in una libreria di classi portatile?
- 30. Come chiudere una discussione dall'interno?
@krock: quindi è Runnable anche se dà al thread-scheduler un'opportunità per attivare un thread diverso? – Max
@Max, yes 'yield()' è una notifica al sistema che dovrebbe dare agli altri thread la possibilità di essere eseguito. Se non c'è nient'altro da fare, il thread potrebbe semplicemente continuare l'esecuzione. – krock
RUNNABLE, non in esecuzione. Potrebbe essere eseguito se la pianificazione gli dà una fetta. Al contrario un thread calling join() non può essere eseguito (cioè non è eseguibile) in questo momento. – EricSchaefer