001--【并发】并发问题入门

2020-07-20  本文已影响0人  糖纸疯了

1、写在前面

在此记录,以备遗忘


2、核心操作

2.1、厕所问题

2.2、并发场景

2.3、厕所问题代码实现


3、具体操作

3.1、厕所问题

加一把锁不就好了,如果们被锁住了,就代表有人在使用这个厕所,问题完美被解决了!

3.2、并发场景

并发问题就是解决【多个线程】使用【同一个公共资源】的事情!

3.3、厕所问题代码实现

直接在业务逻辑上添加synchronized关键字即可

public class Test02Main {
    // 执行业务逻辑-添加synchronized关键字
    public synchronized static void accesResource() {
        try {
            // 1、直接使用线程进行休眠
            // Thread.sleep(2);
            // 2、使用时间工具类进行休眠
            TimeUnit.SECONDS.sleep(2);//2秒钟
            System.out.println(Thread.currentThread().getName() + "----is running");
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
    }

    // 创建多个线程执行主业务
    public static void main(String[] args) {
        for (int i = 0; i < 5; i++) {
            new Thread(Test02Main::accesResource).start();
        }
    }
}


4、课后习题

4.1、多线程使用方法

参考网址:https://www.jianshu.com/p/af6299f7cdff

4.2、synchronized使用方法

参考:https://www.jianshu.com/p/aed8ce46660f


5、参考网址

上一篇 下一篇

猜你喜欢

热点阅读