您当前的位置: 首页 >  Java

java持续实践

暂无认证

  • 1浏览

    0关注

    746博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

Java多线程 结果错误:a++会让加的次数减少

java持续实践 发布时间:2020-08-31 19:36:45 ,浏览量:1

文章目录
      • a++会让加的次数减少
      • 加的次数减少原因分析

a++会让加的次数减少

如下的代码演示了, 原本期望是20000的结果, 却由于线程不安全, 导致了结果不符合预期.

创建了两个线程, 都去调用run方法的共享变量的i++的操作. 并且使用了join让主线程等待子线程. 主线程等待子线程执行完毕之后, 再打印执行的结果.


/**
 * 类名称:MultiThreadsError
 * 类描述:  第一种:运行结果出错。 演示计数不准确(减少),找出具体出错的位置。
 *
 * @author: https://javaweixin6.blog.csdn.net/
 * 创建时间:2020/8/31 19:18
 * Version 1.0
 */
public class MultiThreadsError implements Runnable{

    static MultiThreadsError instance = new MultiThreadsError();
    int index = 0;

    public static void main(String[] args) throws InterruptedException {
        Thread thread1 = new Thread(instance);
        Thread thread2 = new Thread(instance);
        thread1.start();
        thread2.start();

        //主线程 等待子线程
        thread1.join();
        thread2.join();

        //打印结果
        System.out.println(instance.index);
    }

    @Override
    public void run() {
        for (int i = 0; i             
关注
打赏
1658054974
查看更多评论
0.0598s