2
현재 스레드 안전을 위해 만든 응용 프로그램을 리팩토링하고 있습니다.JCheckBox.isSelected() 스레드는 안전합니까?
나는 확인해야 할 JCheckBox
이 있습니다. 이 JCheckBox
은 다양한 스레드에서 프로그램 전체에서 참조됩니다.
간단히 checkbox.isSelected()
으로 전화를 걸거나 invokeLater
을 사용하여이 전화를해야합니까?
일반적으로 동시성을 이해하는 것이 어렵다는 것을 알고 있지만 천천히 그러나 확실하게 거기에 있습니다. 이것이 어리석은 질문이라면 왜 내 이해를 향상시킬 수 있는지 말해주십시오.
감사합니다.
내가 완전히 확실하지 않다, 그러나에 isSelected()가 순수 확인란을 변경하지 않고 값을 반환해야합니다 고려, 당신은해야한다 invokeLater를 사용하지 않아도됩니다. –
방금 [이 답변] (http://stackoverflow.com/a/1796687/1799530), 아니라고 대답 – SomeJavaGuy
당신은'EDT' 밖에서'isSelected()'를 호출합니까? 예를 들어 액션 리스너에서 일부 처리를 수행하는 경우 문제가 없습니다. 만약 당신이'isSelected()'를 정규 코드에서 호출한다면, 그것은 설계상의 문제가 더 많고,'invokeLater()'는 어쨌든 그것을 고칠 수있는 적절한 방법이 아닐 것이라고 말하고 싶습니다. – Kayaman