Многопоточная графика с использованием таймера?

Мой лектор дал мне задание с просьбой о многопоточной графической программе, в которой шар подпрыгивает вокруг jframe. Он хотел, чтобы у каждого мяча была своя нить. После отметки он сказал мне, что таймер многопоточный, и это лучший способ сделать это. Я использовал новую нить для каждого шара, я знаю, что это дорого, но он сказал нам использовать нить для каждого шара. Является ли класс таймера многопоточным?

используя таймер

Ball b = new Ball(x, y);
BallMover bm = new BallMover(b)//adds the ball to a new instance of an actionListner
theTimer.addActionListener(bm);

используя темы

Ball b = new Ball(x,y);
BallMover bm = new BallMover(b);//adds the ball to a new instance of a Thread
bm.start();

1 ответ

Из документов для качелей Timer,

Хотя все Timers выполнить их ожидание, используя один общий поток (созданный первым Timer объект, который выполняется), обработчики событий действия для Timers выполнить в другом потоке - потоке диспетчеризации событий. Это означает, что обработчики действий для Timers может безопасно выполнять операции над компонентами Swing. Однако это также означает, что обработчики должны выполняться быстро, чтобы поддерживать отзывчивость графического интерфейса.

Другие вопросы по тегам