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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© FateYin 中级黑马   /  2015-8-6 23:45  /  332 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

class MyThread  implements Runnable
问题:
第一种:
MyThread a=new MyThread();
Thread A1=new Thread(a);
Thread A2=new Thread(a);
A1.start(); A2.start();


第二种:
MyThread a=new MyThread();
MyThread b=new MyThread();
Thread A1=new Thread(a);
Thread A2=new Thread(b);
A1.start(); A2.start();
请问这2种情况,运行结果不一样,它们本质的区别到底在哪里?

3 个回复

倒序浏览
第一种两个线程开启后,其实是在调用同一个对象的run()方法
第二种两个线程开启后,各自调用不同对象的run()方法,互不影响
回复 使用道具 举报
区别就是上面2个线程都运行a里面数据  下面的2个线程分别运行2个a里面数据各运行各的互不相干
回复 使用道具 举报
第一种:新建线程时,使用的是同一个MyThread对象,即两个线程拥有了共同资源,公共数据,
第二种:用两个MyThread对象建立了两个线程,这两个线程没有公共资源,
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马