jielinvsx 2014-02-21 15:18 采纳率: 0%
浏览 1667

关于多线程问题,请教???

public class TestSyncTest {
public static void main(String[] args) {
​​TestSync job = new TestSync();
​​Thread jia = new Thread(job);
​ ​Thread yi = new Thread(job);
​ ​jia.setName("甲");
​​yi.setName("乙");
​ ​jia.start();
​​yi.start();
}
}

class TestSync implements Runnable {
​private int balance;
​public void run() {
​ ​for (int i = 0; i < 30; i++) {
​ ​​increment();
​ ​​System.out.println("余额为 :" + balance + "---------"+ Thread.currentThread().getName() +"在操作");
​ ​}
}
​public synchronized void increment() {
​ ​int i = balance;// 余额
​ ​balance = i + 1;

​}

}


为什么输出来 并不是同步的
控制台输出结果??????????????
余额为 :1---------甲在操作
余额为 :2---------乙在操作
余额为 :4---------乙在操作
余额为 :5---------乙在操作
余额为 :3---------甲在操作
余额为 :6---------乙在操作
余额为 :7---------甲在操作
余额为 :8---------乙在操作
余额为 :9---------甲在操作
余额为 :11---------甲在操作
余额为 :12---------甲在操作
余额为 :13---------甲在操作
余额为 :14---------甲在操作
余额为 :15---------甲在操作
余额为 :16---------甲在操作
余额为 :17---------甲在操作
余额为 :18---------甲在操作
余额为 :19---------甲在操作
余额为 :20---------甲在操作
余额为 :21---------甲在操作
余额为 :22---------甲在操作
余额为 :23---------甲在操作
余额为 :24---------甲在操作
余额为 :25---------甲在操作
余额为 :26---------甲在操作
余额为 :27---------甲在操作
余额为 :28---------甲在操作
余额为 :29---------甲在操作
余额为 :30---------甲在操作
余额为 :31---------甲在操作
余额为 :32---------甲在操作
余额为 :33---------甲在操作
余额为 :34---------甲在操作
余额为 :35---------甲在操作
余额为 :36---------甲在操作
余额为 :10---------乙在操作
余额为 :37---------乙在操作
余额为 :38---------乙在操作
余额为 :39---------乙在操作
余额为 :40---------乙在操作
余额为 :41---------乙在操作
余额为 :42---------乙在操作
余额为 :43---------乙在操作
余额为 :44---------乙在操作
余额为 :45---------乙在操作
余额为 :46---------乙在操作
余额为 :47---------乙在操作
余额为 :48---------乙在操作
余额为 :49---------乙在操作
余额为 :50---------乙在操作
余额为 :51---------乙在操作
余额为 :52---------乙在操作
余额为 :53---------乙在操作
余额为 :54---------乙在操作
余额为 :55---------乙在操作
余额为 :56---------乙在操作
余额为 :57---------乙在操作
余额为 :58---------乙在操作
余额为 :59---------乙在操作
余额为 :60---------乙在操作

  • 写回答

1条回答

  • 隋唐朝明月 2014-02-22 06:26
    关注

    甲乙线程各自循环中都在抢increment方法 谁抢到都可能 而且和这个不相关 直接调的打印方法 谁都可能先执行

    评论

报告相同问题?

悬赏问题

  • ¥15 drone 推送镜像时候 purge: true 推送完毕后没有删除对应的镜像,手动拷贝到服务器执行结果正确在样才能让指令自动执行成功删除对应镜像,如何解决?
  • ¥15 求daily translation(DT)偏差订正方法的代码
  • ¥15 js调用html页面需要隐藏某个按钮
  • ¥15 ads仿真结果在圆图上是怎么读数的
  • ¥20 Cotex M3的调试和程序执行方式是什么样的?
  • ¥20 java项目连接sqlserver时报ssl相关错误
  • ¥15 一道python难题3
  • ¥15 牛顿斯科特系数表表示
  • ¥15 arduino 步进电机
  • ¥20 程序进入HardFault_Handler