지금 막 멀티 스레딩 프로그래밍을 시작합니다. 내 프로그램 쇼에 번갈아 '-'와 '+'문자를 사용하고 싶지만 그렇지 않습니다. 내 임무는 synchronized
키워드를 사용하는 것입니다. 나는 대신 실행 방법에 for
루프를 Thread.sleep
테스트 :Java의 간단한 멀티 스레딩 프로그램에서 이상한 문제가 발생했습니다.
class FunnyStringGenerator{
private char c;
public FunnyStringGenerator(){
c = '-';
}
public synchronized char next(){
if(c == '-'){
c = '+';
}
else{
c = '-';
}
return c;
}
}
class ThreadToGenerateStr implements Runnable{
FunnyStringGenerator gen;
public ThreadToGenerateStr(FunnyStringGenerator fsg){
gen = fsg;
}
@Override
public void run() {
for(int i = 0; i < 10; i++){
System.out.print(gen.next());
}
}
}
public class Main{
public static void main(String[] args) throws IOException {
FunnyStringGenerator FSG = new FunnyStringGenerator();
ExecutorService exec = Executors.newCachedThreadPool();
for(int i = 0; i < 20; i++){
exec.execute(new ThreadToGenerateStr(FSG));
}
}
}
편집 : 지금까지 내가이 있습니다.
왜 아래로 투표하십시오. –