Лучшая практика двух потоков в одном Java-апплете - PullRequest
3 голосов
/ 10 января 2012

Я видел много таких примеров:

public class AppletName extends Applet implements Runnable {
    // member variables
    // run method and so on...
}

Проблема, которую я не могу понять, заключается в том, как лучше всего использовать два потока в одном апплете. Я попытался найти это в Google. Я нашел книги на 500 страниц :( Мне нужно что-то быстрое.

Может ли кто-нибудь привести мне короткий пример или сказать, что является лучшей практикой?

Ответы [ 4 ]

1 голос
/ 10 января 2012

Я видел много примеров, подобных этому

Если они основаны на Applet, они либо очень старые, либо написаны относительно некомпетентными авторами. Положите их туда, где вы их нашли.

  1. Используйте Swing для компонентов (например, удлинитель JApplet).
  2. Прочитайте Параллельность в Swing для получения более подробной информации о том, как использовать несколько потоков.
0 голосов
/ 10 января 2012

Требуется время, чтобы усовершенствовать приложения с апплетами и графическим интерфейсом Java, которые очень отзывчивы.

Вы должны понимать, что расширение потока нормально, но то, что вы делаете с ним, важно.

Есть много фреймворков, которые нужно использовать, если вам нужно что-то быстрое, тогда расширение потока - это нормально.

Возможно, вам придется спросить себя с точки зрения дизайна:

  1. Есть ли в вашем приложении несколько страниц / фреймов?

  2. Часто ли он обновляется? (чрезмерные картины или просто много индикаторов прогресса)

  3. Часто ли требуется ввод данных пользователем (например, управление игрой)

Если вы ответите «Да» на все, а затем подумайте о переносе в поток, рекомендуется запустить поток основного процесса (фона) до потока отображения.

опять же, я понятия не имею, чего бы вы хотели достичь, возможно, просветите нас.

0 голосов
/ 10 января 2012

Пример Java-апплетов и потоков . Коротко и просто. С примером кода.

Если у вас есть пул задач для параллельной обработки, рассмотрите класс ExecutorService.

Для лучших практик есть более короткие (<500 страниц :) и наиболее точные руководства <a href="https://www.securecoding.cert.org/confluence/display/java/The+CERT+Oracle+Secure+Coding+Standard+for+Java" rel="nofollow"> здесь . Главы 07 - 11 относятся к многопоточному коду. (просто список лучших практик и типичных ошибок)

0 голосов
/ 10 января 2012

Я бы использовал ExecutorService или ScheduledExecutorService и добавил бы задачи, например, анонимные классы Runnable в пул потоков.Вы можете обнаружить, что вам нужен только один поток, хотя у вас есть две или большинство задач (это просто конфигурация пула потоков, которую вы можете изменить позже)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...