多线程经典笔试面试题

来源:互联网 发布:国研网数据子库 编辑:程序博客网 时间:2024/05/01 17:16

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

package com.sshhsun.javathread.day01;public class ThreadTest1 {    private int j = 1;    public static void main(String[] args) {        ThreadTest1 test1 = new ThreadTest1();        Inc inc = test1.new Inc();        Dec dec = test1.new Dec();        for (int i = 0; i < 2; i++) {            Thread t = new Thread(inc);            t.start();            t = new Thread(dec);            t.start();        }    }    private synchronized void inc() {        j++;        System.out.println(Thread.currentThread().getName() + "--inc:" + j);    }    private synchronized void dec() {        j--;        System.out.println(Thread.currentThread().getName() + "--dec:" + j);    }    class Inc implements Runnable {        @Override        public void run() {            for (int i = 0; i < 10; i++) {                inc();            }        }    }    class Dec implements Runnable {        @Override        public void run() {            for (int i = 0; i < 10; i++) {                dec();            }        }    }}

运行结果


Thread-0–inc:2
Thread-0–inc:3
Thread-0–inc:4
Thread-0–inc:5
Thread-0–inc:6
Thread-0–inc:7
Thread-0–inc:8
Thread-0–inc:9
Thread-0–inc:10
Thread-0–inc:11
Thread-3–dec:10
Thread-3–dec:9
Thread-3–dec:8
Thread-3–dec:7
Thread-3–dec:6
Thread-3–dec:5
Thread-3–dec:4
Thread-3–dec:3
Thread-3–dec:2
Thread-3–dec:1
Thread-1–dec:0
Thread-1–dec:-1
Thread-1–dec:-2
Thread-1–dec:-3
Thread-1–dec:-4
Thread-1–dec:-5
Thread-1–dec:-6
Thread-1–dec:-7
Thread-1–dec:-8
Thread-1–dec:-9
Thread-2–inc:-8
Thread-2–inc:-7
Thread-2–inc:-6
Thread-2–inc:-5
Thread-2–inc:-4
Thread-2–inc:-3
Thread-2–inc:-2
Thread-2–inc:-1
Thread-2–inc:0
Thread-2–inc:1

1 0
原创粉丝点击