Многопоточная графика с использованием таймера?
Мой лектор дал мне задание с просьбой о многопоточной графической программе, в которой шар подпрыгивает вокруг 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. Однако это также означает, что обработчики должны выполняться быстро, чтобы поддерживать отзывчивость графического интерфейса.