多线程经典笔试面试题

Posted sshhsun-

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了多线程经典笔试面试题相关的知识,希望对你有一定的参考价值。

设计 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

以上是关于多线程经典笔试面试题的主要内容,如果未能解决你的问题,请参考以下文章

Android开发经典笔试面试题汇总(持续更新中)

多线程笔试面试题汇总

秒杀多线程第一篇 多线程笔试面试题汇总

BAT Java面试笔试33题:JavaListJava Map等经典面试题!答案汇总!

BAT Java面试笔试33题:JavaListJava Map等经典面试题!答案汇总!

Java笔试题解答和部分面试题