Diese Präsentation wurde erfolgreich gemeldet.
Wir verwenden Ihre LinkedIn Profilangaben und Informationen zu Ihren Aktivitäten, um Anzeigen zu personalisieren und Ihnen relevantere Inhalte anzuzeigen. Sie können Ihre Anzeigeneinstellungen jederzeit ändern.

[Curso Java Basico] Aula 73: Threads: resume, suspend e stop

695 Aufrufe

Veröffentlicht am

Curso de Java Completo com Certificado e Fórum para dúvidas: http://loiane.training

Site: http://loiane.training
Blog: http://loiane.com
Facebook: https://www.facebook.com/loianegroner
Github: https://github.com/loiane
Twitter: https://twitter.com/loiane

Veröffentlicht in: Technologie
  • Loggen Sie sich ein, um Kommentare anzuzeigen.

[Curso Java Basico] Aula 73: Threads: resume, suspend e stop

  1. 1. 73 Curso de Java Threads: notify, wait e notifyAll
  2. 2. • Pode ser útil suspender uma thread. Por exemplo, uma thread que mostra a hora do dia. Podemos suspender e posteriormente resumir a execução
  3. 3. • Pode ser útil suspender uma thread. Por exemplo, uma thread que mostra a hora do dia. Podemos suspender e posteriormente resumir a execução • Até o Java 2 existiam os métodos suspend, resume e stop
  4. 4. • Pode ser útil suspender uma thread. Por exemplo, uma thread que mostra a hora do dia. Podemos suspender e posteriormente resumir a execução • Até o Java 2 existiam os métodos suspend, resume e stop • O método suspend foi substituído no Java 2 por poder causar problema de deadlock
  5. 5. • Pode ser útil suspender uma thread. Por exemplo, uma thread que mostra a hora do dia. Podemos suspender e posteriormente resumir a execução • Até o Java 2 existiam os métodos suspend, resume e stop • O método suspend foi substituído no Java 2 por poder causar problema de deadlock • E como o resume não funciona sem o suspend, também foi removido
  6. 6. • Pode ser útil suspender uma thread. Por exemplo, uma thread que mostra a hora do dia. Podemos suspender e posteriormente resumir a execução • Até o Java 2 existiam os métodos suspend, resume e stop • O método suspend foi substituído no Java 2 por poder causar problema de deadlock • E como o resume não funciona sem o suspend, também foi removido • O método stop também foi substituído no Java 2 (deve- se usar o método interrupt no lugar)
  7. 7. • Mas ainda podemos adicionar esses comportamentos na nossaThread de maneira mais segura
  8. 8. • suspend: suspende temporariamente a execução da Thread
  9. 9. • suspend: suspende temporariamente a execução da Thread • resume: resume a execução daThread
  10. 10. • suspend: suspende temporariamente a execução da Thread • resume: resume a execução daThread • stop: termina a execução daThread
  11. 11. private boolean suspended; private boolean stopped; private String nome; public MinhaThread(String nome){ suspended = false; stopped = false; this.nome = nome; new Thread(this, nome).start(); } @Override public void run() { System.out.println("Executando " + nome ); try { for(int i=0; i<10; i++) { System.out.println("Thread: " + nome + ", " + i); Thread.sleep(300); synchronized(this) { while(suspended) { wait(); } if (stopped){ break; } } } } catch (InterruptedException e) { System.out.println("Thread " + nome + " interrompida."); } System.out.println("Thread " + nome + " terminada."); }
  12. 12. void suspend() { suspended = true; } synchronized void resume() { suspended = false; notify(); } synchronized void stop() { stopped = true; notify(); }
  13. 13. public static void main(String[] args) { MinhaThread t1 = new MinhaThread("#1"); MinhaThread t2 = new MinhaThread("#2"); t1.suspend(); try { Thread.sleep(200); } catch (InterruptedException e) { e.printStackTrace(); } t2.suspend(); t1.resume(); try { Thread.sleep(200); } catch (InterruptedException e) { e.printStackTrace(); } t2.resume(); t2.stop(); }
  14. 14. https://github.com/loiane/curso-java-basico Código Fonte:
  15. 15. Não conhece Git/Github? http://www.loiane.com/2013/11/ screencast-git-e-github-para-iniciantes
  16. 16. http://loiane.training Fórum para dúvidas + certificado do curso. Cadastro em:
  17. 17. Obrigada!
  18. 18. http://loiane.com facebook.com/loianegroner twitter.com/loiane https://github.com/loiane youtube.com/loianegroner http://loiane.training

×