四线程读写_牛客网

来源:互联网 发布:楼板荷载计算软件 编辑:程序博客网 时间:2024/06/05 09:17

题目

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

Java实现(转自牛客@冰封无痕)

package src;/** * Created by Administrator on 2017/8/22. */class Resoure    private int j = 0;    public synchronized void add() {        j++;        System.out.println(Thread.currentThread().getName() + "...add..." +                "当前j值" + j);    }    public synchronized void des() {        j--;        System.out.println(Thread.currentThread().getName() + "...des..." +                "当前j值" + j);    }}public class FourThreadTest {    //new object    private Resoure res = new Resoure();    public static void main(String[] args) {        FourThreadTest fourThread = new FourThreadTest();        fourThread.test();    }    private void test() {        for (int i = 0; i < 2; i++) {            new Thread(new Runnable() {                @Override                public void run() {                    while (true) {                        try {                            Thread.sleep((long) (Math.random() * 1000));                        } catch (InterruptedException e) {                            e.printStackTrace();                        }                        res.add();                    }                }            }).start();            new Thread(new Runnable() {                @Override                public void run() {                    while (true) {                        try {                            Thread.sleep((long) (Math.random() * 1000));                        } catch (InterruptedException e) {                            e.printStackTrace();                        }                        res.des();                    }                }            }).start();        }    }}
原创粉丝点击