请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

synchronized 关键字问题

package com.mmall.concurrency.example.sync;

import lombok.extern.slf4j.Slf4j;

import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;

/**

  • @author ymy
    */
    @Slf4j
    public class SynchronizedExample1 {

    // 修饰一个代码块
    public void test1(int j) {
    synchronized (this) {
    for (int i = 0; i < 10; i++) {
    log.info(“test1 {} - {}”, j, i);
    }
    }
    }

    // 修饰一个方法
    public void test2(int j) {
    for (int i = 0; i < 10; i++) {
    log.info(“test2 {} - {}”, j, i);
    }
    }

    public static void main(String[] args) {
    SynchronizedExample1 example1 = new SynchronizedExample1();
    SynchronizedExample1 example2 = new SynchronizedExample1();
    ExecutorService executorService = Executors.newCachedThreadPool();
    executorService.execute(() -> {
    example1.test2(1);
    });
    executorService.execute(() -> {
    example2.test2(2);
    });
    }
    }

synchronized 关键字加与不加对程序运行有什么影响,影响是什么原因导致的,请问有详细说明吗,感觉就是把程序放上去,展示一下结果,没有详细说明synchronized 关键字加与不加对程序的影响。

正在回答 回答被采纳积分+3

1回答

Jimin 2021-09-24 22:12:24

你好,有synchronized关键字修改的那个方法,在传入不同的参数j时他们的输出顺序稳定不会被打乱,这个要结合课程里讲解synchronized使用的四种场景去看他们的细节差别

0 回复 有任何疑惑可以回复我~
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信