小编Eli*_*eth的帖子

Java中简单多线程程序的奇怪问题

我刚开始玩多线程编程.我希望我的节目交替显示字符' - '和'+',但事实并非如此.我的任务是使用synchronized关键字.到目前为止我有:

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 = …
Run Code Online (Sandbox Code Playgroud)

java concurrency multithreading

3
推荐指数
1
解决办法
680
查看次数

标签 统计

concurrency ×1

java ×1

multithreading ×1