public class counting
{
private static int counter = 0;
public void boolean counterCheck(){
counter++;
if(counter==10)
counter=0;
}
}
메서드 counterCheck는 내 응용 프로그램의 여러 스레드에서 액세스 할 수 있습니다. 정적 변수는 스레드로부터 안전하지 않다는 것을 알고 있습니다. 누군가가 예제를 통해 나를 도울 수 있거나, 방법 또는 블록을 동기화해야하는 이유를 알려 주시면 감사하겠습니다. 동기화하지 않으면 어떻게됩니까?다중 스레드 응용 프로그램에서 정적 카운터 스레드가 안전합니까?
이것은 코드의 전형적인 예 *하지 * 스레드 실제로 가까운이 스레드가 안전하게 할 수있는 작업은 손실됩니다. –
asnwer가 아니라 두 개의 관련이없는 팁 : (1) 컴파일되지 않습니다. [countCheck()]에 대한 반환 값이 없습니다. (2) java는 ** 클래스 이름이 대문자 **로 시작하는 강력한 명명 규칙을 가지고 있습니다. 이름 바꾸기 :'counting' ->'Counting'. – amit
@ Amit- 이것은 원래 코드가 아닙니다. 생각해 줘서 고마워. – questborn