HotKey 조합에서 뭔가를하는 Java 응용 프로그램을 만들고 있습니다. HotKey 입력이 닫힐 때까지 기다리는 무한 while 루프가 있지만 앱 CPU 시간이 많이 소요됩니다.Java에서 다른 스레드로부터의 입력으로 하나의 스레드가 무한 대기합니다.
다음은 내 코드는 가장 간단한 방법으로 보이는 방법은 다음과 같습니다.
static boolean isOpen = true;
void main()
{
....
add SomeHotKeyListener();
....
while(isOpen)
{ }
releaseResources();
}
void onHotKey(int hotKeyIdentifier)
{
if(hotKeyIdentifier == something)
do something;
if(hotKeyIdentifier == something)
isOpen = false;
}
내가 이것을 달성하기 위해 멀티 스레딩 접근 방식이 필요하거나 다른 사람이있는 경우 더 나은 뭔가에 맞게
답장을 보내 주셔서 감사합니다. 필요한 것이 었습니다. – SnapADragon
문제는 없습니다. 내가 잊어 버린 한 가지는 (그리고 그의 답변에서 언급 된 zencv) isOpen' 휘발성을 만드는 것입니다. 이것은 [두 가지 스레드가 같은 변수를 참조 할 때 동일한 메모리에 액세스 하는지를 확인하는 데 매우 중요합니다. http://www.javamex.com/tutorials/synchronization_volatile.shtml). – PaF
동기화 된 블록에서 대기하고 통보하는 이전 솔루션이 필요하기 때문에이 경우 휘발성 변수를 사용해야하는 이유는 무엇입니까? – SnapADragon