왜 프로그램이 0 대신 9를 인쇄하지 않습니까? clases 모두의 Integer i
는 서로 독립적 입니다 당신은 threadOne
의 i
를 인쇄하고, 그리고 firstThread
스레드에서의 카운팅
:
AtomicInteger는 (권고로)
public class threadOne{
//Integer i=0;
AtomicInteger i=new AtomicInteger(0);
class firstThread implements Runnable{
AtomicInteger i;
firstThread(AtomicInteger i){
this.i=i;
}
public void run(){
while(i.intValue()<10){
i.incrementAndGet();
}
}
}
void runThread(){
Thread t = new Thread(new firstThread(i));
t.start();
System.out.println("Result : " + i.intValue());
}
public static void main(String[] args){
new threadOne().runThread();
}
}
내 대답 읽기. 그리고 문제가 해결되지 않으면 대답을 받아들이지 마십시오. 그것은 문제가 해결되고 모두가 나아 간다는 인상을줍니다. –
내 대답이 업데이트되었습니다. –
참조 Java 명명 규칙을 따르십시오. 항상 클래스 이름은 대문자로 시작하십시오. 또한,'threadOne'은'Thread'를 확장해야합니다. 이름에서 알 수 있듯이 말입니다. –