A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 李节起 中级黑马   /  2012-4-9 11:29  /  2082 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

[code=java]class L
{
        public static void main(String[] args)
        {
                Runnable  mt1=new MyThread();
                Runnable  mt2=new MyThread();
                new Thread(mt1).start();
                new Thread(mt2).start();
        }
}


class MyThread implements Runnable
{
    public void run()
        {
                for(int i=0;i<100;i++)
                {
                   System.out.println(Thread.currentThread().getName()+":"+i);
                }
        }
} [/code]




从这个程序里面,打印的结果是:
Thread-0:0
Thread-1:1
Thread-0:2
Thread-1:3
Thread-0:4


我的问题是多线程不是同步执行的吗?
如果是这样,那打印结果应该是这样
Thread-0:0
Thread-1:0
......
同步执行


求解

4 个回复

倒序浏览
代码没错啊,2个线程打印各自的数据 i。不会出现共享 局部变量 i 的情况。因为你new了2个对象,i 为对象的非静态成员 里的局部变量,所以不会出现共享的。
回复 使用道具 举报
兄弟你问得很好啊,
public class TestThread
{
        public static void main(String[] args)
        {
                Runnable  mt1=new MyThread();
                Runnable  mt2=new MyThread();
                new Thread(mt1).start();
                new Thread(mt2).start();
        }
}


class MyThread implements Runnable
{
    public void run()
        {
                for(int i=0;i<100;i++)
                {
                        try{
                                Thread.sleep(300) ;
                        }catch(Exception e){
                                e.printStackTrace() ;
                        }
                   System.out.println(Thread.currentThread().getName()+":"+i);
                }
        }
}


为了解决你的疑问,我在里面加入了延时,这样你就应该能理解同步的问题了吧?就比如说一张票,被四个人同时在四个窗口去抢着买,如果四个窗口的售票机都延迟一下给人票的那个过程,那么一张票就被卖了四次,恐怖吧?希望我这样说了你能理解
回复 使用道具 举报
多线程是同步执行的,但是如果你不加入延迟的话,时间太短了,你没给他机会让去去把同步的那个事实摆在你的眼前啊,我加了延迟以后,效果就出来了,你自己理解下
回复 使用道具 举报
 楼主的帖子实在是写得太好了。文笔流畅,修辞得体,深得魏晋诸朝遗风,更将唐风宋骨发扬得入木三分,能在有生之年看见楼主的这个帖子。实在是我三生之幸啊。看完楼主的这个帖子之后,我竟感发生出一种无以名之的悲痛感??啊,这么好的帖子,如果将来我再也看不到了,那我该怎么办?那我该怎么办?直到我毫不犹豫的把楼主的这个帖子收藏了。我内心的那种激动才逐渐平复下来。可是我立刻想到,这么好的帖子,倘若别人看不到,那么不是浪费楼主的心血吗?经过痛苦的思想斗争,我终于下定决心,我要把这个帖子一直往上顶,往上顶!顶到所有人都看到为止。  
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马