У меня есть поток, который включает и отключает кнопку в определенное случайное время, если кнопка нажата, когда она включена, будет выполнено действие, которое изменит изображение кнопки. Меня беспокоит синхронизация здесь. Предположим, что кнопка вот-вот отключится и будет нажата, поэтому теперь оба потока будут выполнять одно, чтобы отключить ее, а другое - изменить изображение. Как мне синхронизировать это?Требуется ли в следующей ситуации синхронизация?
ответ
Все инструменты Java GUI (будь то Swing, Apache Pivot, JavaFX, AWT, SWT, Android ...) являются однопоточными. Это означает, что все слушатели всегда будут стрелять в один поток. Итак:
- нет, вам не нужно выполнять какие-либо синхронизации,
- да, вы должны принять меры предосторожности, чтобы выключения и включения кнопки происходит в ГИП нити (wahetever это называется). Точный код является специфичным для инструментария.
AWT заведомо * не * однопоточный и синхронизирован повсюду. При разработке у него были некоторые идеи, позволяющие работать из нескольких потоков, хотя это практически невозможно. – bestsss
Вы говорите, что мой класс GUI должен быть actionListener. В настоящее время я создал другой класс слушателя действий, который изменит образ в его actionperformed. Отдельный поток, который переключает кнопку. Но в какой-то момент оба метода запуска и выполненное действие будут иметь один и тот же объект кнопки, на котором они должны работать. @bestsss – Ajak6
@AmeyJain, я этого не делаю. Придерживайтесь одной нити. – bestsss
- 1. Требуется ли синхронизация?
- 2. Можно ли использовать goto в следующей ситуации?
- 3. Требуется синхронизация
- 4. шаблона дизайна для следующей ситуации
- 5. Sql запрос для следующей ситуации
- 6. Как установить работу вставки в следующей ситуации?
- 7. реализовать бит-карту в следующей ситуации
- 8. Обновить запрос в Django в следующей ситуации?
- 9. Как смоделировать ассоциацию в следующей ситуации.?
- 10. Кассандра будет успешным в следующей ситуации?
- 11. Соответствующее делегирование ответственности в следующей ситуации?
- 12. Как использовать innertHTML, в этой следующей ситуации
- 13. Требуется ли для этого кода синхронизация?
- 14. does Monitor.Wait Требуется синхронизация?
- 15. Требуется ли для управления ActiveX синхронизация потоков?
- 16. Как запросить GroupBy в следующей ситуации
- 17. Как написать SQL запрос в следующей ситуации
- 18. Что такое концепция ООП в следующей ситуации?
- 19. Почему «onPause» не вызван в следующей ситуации?
- 20. ASP.Net или Node.js в следующей ситуации
- 21. является проверка требуется в данной ситуации
- 22. Требуется ли Socket.Bind для каждой ситуации в программировании сокета?
- 23. Требуется ли написать специальные шаблоны для этой ситуации в Mockito?
- 24. Что является лучшей альтернативой для следующей ситуации?
- 25. Как определить фильтр запроса для следующей ситуации?
- 26. Как создать запрос соединения для следующей ситуации?
- 27. Ruby: Есть ли ситуации, когда требуется ключевое слово return?
- 28. Использование ConcurrentHashMap, когда требуется синхронизация?
- 29. Как я могу избежать повторения в следующей ситуации JavaScript?
- 30. Как использовать кнопку в следующей ситуации в grails?
Если это необходимо, как я должен его достичь? – Ajak6