设计 4 个线程,其中两个线程每次对 j 增加 1,另外两个线程对 j 每次减少 1。写出程序。

Posted lingluo2017

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了设计 4 个线程,其中两个线程每次对 j 增加 1,另外两个线程对 j 每次减少 1。写出程序。相关的知识,希望对你有一定的参考价值。

先设计一个类处理加减这一行为:

public class ManyThread {

    private int j = 0;
    
    public synchronized void inc(){
        j++;
        System.out.println(Thread.currentThread().getName() + "inc" + j);
    }
    
    public synchronized void dec(){
        j--;
        System.out.println(Thread.currentThread().getName() + "dec" + j);
    }
}

然后进行调用

public class MyTest {

    private ManyThread manyThread = new ManyThread();
    
    public static void main(String[] args) {
        
        MyTest myTest = new MyTest();
        myTest.test();

    }

    public void test() {
        for(int i = 0; i < 2;i++){
            new Thread(new Runnable() {
                
                @Override
                public void run() {
                    for (int i = 0;i < 20;i++){
                        manyThread.inc();
                    }
                    
                }
            }).start();
            new Thread(new Runnable(){
                
                @Override
                public void run() {
                    for(int i = 0;i < 20;i++){
                        manyThread.dec();
                    }
                }
            }).start();
        }
    }
}

 

以上是关于设计 4 个线程,其中两个线程每次对 j 增加 1,另外两个线程对 j 每次减少 1。写出程序。的主要内容,如果未能解决你的问题,请参考以下文章

设计4个线程,其中两个线程每次对j增加1,另外两个线程对j每次减少1。写出程序。

设计4个线程,其中两个线程每次对j增加1,另外两个线程对j每次减少1

设计四个线程,其中两个线程每次对j加1,另外两个线程每次对j减1

线程程序问题

Thread和Runnable

如何在两个线程之间共享数据