Какие методы компонента Swing ориентированы на многопотоковое исполнение?

3 ответа

Google научил меня, что по крайней мере те являются потокобезопасными. Вот краткий обзор того случая, когда ссылка снова разорвалась:


  • JTextPane
    • replaceSelection ()
    • insertComponent ()
    • insertIcon ()
    • setLogicalStyle ()
    • setCharacterAttributes ()
    • setParagraphAttributes ()





  • StyleContext
    • addAttribute ()
    • addAttributes () [1289)] removeAttribute
    • removeAttributes ()
    • reclaim ()



18
ответ дан 30 November 2019 в 03:29
поделиться

Но что это за методы компонентов Swing, которые помечены как «потокобезопасные»?

Большинство методов компонентов Swing НЕ являются потокобезопасными. Но некоторые есть. Чтобы узнать, какие из них, у вас нет другого выбора, кроме как просмотреть javadocs для ваших целевых компонентов. Тщательно продуманный поиск в Google может ускорить процесс.

Есть ли вообще какие-нибудь?

Да, действительно есть. Вообще говоря, если вы работаете с компонентами Swing, вполне вероятно, что вам придется вызывать как потокобезопасные, так и небезопасные методы. Поскольку большинство методов не являются потокобезопасными, я предпочитаю проявлять осторожность и в любом случае выполнять все действия с ними в потоковом режиме.

HTH


Не исчерпывающий список.

DefaultStyledDocument:

  • защищенная пустая вставка (int offset, DefaultStyledDocument. Класс является потокобезопасным

7
ответ дан 30 November 2019 в 03:29
поделиться

Но у вас уже есть ответ: только те методы , которые специально задокументированы как поточно-ориентированные в методе JavaDoc ], являются потокобезопасными! это из JTextComponent.setText

  * Этот метод потокобезопасен, хотя большинство методов Swing
* не. Посмотри пожалуйста
 *  Как
 * to Use Threads  для получения дополнительной информации. 

Если в документации метода не указано, что это безопасно, значит, это небезопасно: поэтому доступ к JavaDoc имеет решающее значение при кодировании с использованием Swing

4
ответ дан 30 November 2019 в 03:29
поделиться
Другие вопросы по тегам:

Похожие вопросы: