Java 线程中创建线程的2中方法的具体区别
今天上网看相关资料发现有这么个说法:说继承Thread类的这种方法不能实现资源共享,举的例子就是说三个窗口卖100张票的但是我发现不是那么回事啊publicstaticv...
今天上网看相关资料发现有这么个说法:说继承Thread类的这种方法不能实现资源共享,举的例子就是说三个窗口卖100张票的但是我发现不是那么回事啊 public static void main(String[] args) { // TODO Auto-generated method stub MutliThread m=new MutliThread(); Thread t1=new Thread(m,"A"); Thread t2=new Thread(m,"B"); Thread t3=new Thread(m,"C"); t1.start(); t2.start(); t3.start(); }}class MutliThread extends Thread{ private int ticket=100;//每个线程都拥有100张票 public void run(){ while(ticket>0){ System.out.println(Thread.currentThread().getName()+"卖出一张,剩余" + (--ticket) +"张" ); } }}MutliThread这个类不论是继承Thread还是实现Runnable接口都是一样的效果吧?请高明的大神讲讲具体的情况吧或者推荐一个详细讲解线程的网址,单线程或者多线程的都行
展开
1个回答
2016-04-15 · 做真实的自己 用良心做教育
千锋教育
千锋教育专注HTML5大前端、JavaEE、Python、人工智能、UI&UE、云计算、全栈软件测试、大数据、物联网+嵌入式、Unity游戏开发、网络安全、互联网营销、Go语言等培训教育。
向TA提问
关注
展开全部
第一种方式:使用Runnable接口创建线程
第二种方式:直接继承Thread类创建对象
使用Runnable接口创建线程
1.可以将CPU,代码和数据分开,形成清晰的模型
2.线程体run()方法所在的类可以从其它类中继承一些有用的属性和方法
3.有利于保持程序的设计风格一致
直接继承Thread类创建对象
1.Thread子类无法再从其它类继承(java语言单继承)。
2.编写简单,run()方法的当前对象就是线程对象,可直接操作。
在实际应用中,几乎都采取第一种方式
分享
第二种方式:直接继承Thread类创建对象
使用Runnable接口创建线程
1.可以将CPU,代码和数据分开,形成清晰的模型
2.线程体run()方法所在的类可以从其它类中继承一些有用的属性和方法
3.有利于保持程序的设计风格一致
直接继承Thread类创建对象
1.Thread子类无法再从其它类继承(java语言单继承)。
2.编写简单,run()方法的当前对象就是线程对象,可直接操作。
在实际应用中,几乎都采取第一种方式
分享
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询