Threads e multi-core

Pessoal.

Tô com uma aplicaçao incontornavelmente multi thread e que tem um JPanel com varias buffered images.

Quando rodo ela em casa (core2duo) ficam umas imagens nada a ver pelo tabuleiro do JPanel (eu pinto e repinto toda hora) mas quando rodo num outro pc (um processador soh), tenho a “impressao” de que surgem menos, as vezes quase nenhum problema.

Como resolvo isso?

Se eu usar um thread para o JPanel e outro para os repaint(), vai melhorar ou piorar? (pergunto antes porque eu nao quero mais trabalho a toa)

Abraços!

(o carater incontornavel multi-thread também é incontrolavel, nao tenho acesso a algumas threads desse sisteminha por causa da api)

Para manipular e redesenhar componentes gráficos no Swing, deve-se usar a EDT (Event Dispatching Thread):

http://java.sun.com/products/jfc/tsc/articles/threads/threads1.html
http://en.wikipedia.org/wiki/Event_dispatching_thread

Não é interessante chamar repaint() em várias Thread’s diferentes, pois isso pode comprometer a estabilidade da sua aplicação. Para fazer seus repaint’s, direcione a operação à EDT através do método SwingUtilities.invokeLater():

SwingUtilities.invokeLater(new Runnable() { public void run() { componenteGrafico.repaint(); }});

hmmmm

interessante esse negocio ae, vou tentar e jah te digo se deu certo :wink: