Pessoal eu to apanhando um bocado com Thread… Alguem pode me ajudar a ter uma boa ideia de como estudar sobre esse tópico. Eu já li 2 vezes, mas ainda eu erro muito questões sobre thread… Acredito que eu esteja tendo muita dificildade com thread pois eu nunca usei essa tecnologia. Em fim eu gostaria que vocês me ajudassem( dica ) de como estudar thread.
Como estudar Threads
6 Respostas
thread mais do que qualquer outro assunto é pratica…
codifique até fazer calos nos dedos… e outra coisa… pelo menos na minha opiniao, pra prova, entender thread tem pre-requisitos (conceitos O.O., exceções) no minimo… nem comece a estudar thread se nao estiver bem nessas 2 áreas.
Beleza entãoi eu vou fazer bastante exemplos :D. Qualquer duvida eu posto 
Algumas dicas, para você começar com o pé direito:
-
Thread é a linha de execução do seu programa, não a classe Thread. A classe Thread só dispara essa linha de execução. Por isso, uma thread pode percorrer vários objetos.
-
A palavra synchronized irá sincronizar diferentes threads que estejam no mesmo objeto. Se você tiver duas threads, em dois objetos diferentes, mesmo que da mesma classe, não haverá sincronização (afinal, elas estão em locais diferentes);
-
Todas as variáveis que são compartilhadas por mais de uma thread devem estar dentro de um bloco synchronized ou serem declaradas como volatile;
-
O seu sistema não será finalizado até que todas as threads não declaradas como deamon sejam finalizadas;
-
Uma vez iniciada, a thread só termina quando finalizar o método run() que a originou. Não há como parar uma thread. Entretanto, você pode colocar variáveis de controle para garantir que isso aconteça no momento que você quiser;
-
Nunca faça um wait sem que ele esteja dentro de um while. O wait pode acordar a qualquer momento, é um fenômeno conhecido como spurious wakeup.
A medida que seu estudo avançar, procure ter em mente esses itens. 80% das dúvidas do GUJ estão relacionadas a eles (já vi dezenas de vezes a dúvida devido ao número 2).
Vinny, o erro 2 eu vivia cometendo! Lembro que foi difícil de entender que synchronized servia para bloquear as Threads, e não os objetos.
Valew pessoal já estou estudando Thread 
Esses erros aí são mesmo clássicos.
Diversos posts do GUJ são relacionados a ele.
E coloquei mais ou menos em ordem de importância.