JAVA多线程继承Thread 与实现Runnable接口的相关疑问
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JAVA多线程继承Thread 与实现Runnable接口的相关疑问相关的知识,希望对你有一定的参考价值。
简述JAVA多线程继承Thread 与实现Runnable接口的区别
(2010-03-31 09:48:01)
转载
标签:
java多线程
继承thread
实现runnable
it
此处,以一个简单的卖盘的例子来说明 JAVA多线程 继承Thread 与 实现Runnable接口 的区别!
首先创建2个类
一、第一个是继承Thread
package com.thread.test;
public class MyThread extends Thread
private int ticket=5; //一共5张票
public void run()
for(int i=0;i<50;i++)
if(this.ticket>0)
System.out.println("卖票:ticket= "+this.ticket--);
二、实现实现Runnable接口
package com.thread.test;
public class MyThread1 implements Runnable
private int ticket=5; //一共5张票
public void run()
for(int i=0;i<50;i++)
if(this.ticket>0)
System.out.println("卖票:ticket= "+this.ticket--);
三、创建测试类
如果几个电影院同时卖票,应该一共可以卖5次,因为总共5张票,
第一个测试类
package com.thread.test;
public class Soleticket
public static void main(String[] args)
// TODO Auto-generated method stub
MyThread st1=new MyThread();
MyThread st2=new MyThread();
MyThread st3=new MyThread();
st1.start();
st2.start();
st3.start();
//结果是卖 了 15张票,没有实现资源共享,实际上只有5张票,每个线程都是卖自己的票,没有实现资源共享,
第二个测试类
package com.thread.test;
public class SoleticketRunnabel
public static void main(String[] args)
// TODO Auto-generated method stub
MyThread1 st1=new MyThread1();
//三个线程
new Thread(st1).start();
new Thread(st1).start();
new Thread(st1).start();
//结果是卖 了 5张票,所以说是用Runnable 可以实现 资源共享的卖盘的效果。
运行上面2个类,可以比较出区别,继承Thread 类是卖了 15张票,而实现Runnable 接口的就是卖了 5张票,所以在实际应用中应该首先而实现Runnable 接口方法来做多线程!
以上为转载!!
我绝的Thread也能实现共享啊;
以下为我编写的;
class MyThread extends Thread
private int ticket=5; //一共5张票
public void run()
for(int i=0;i<50;i++)
if(this.ticket>0)
System.out.println("卖票:ticket= "+this.ticket--);
public class Soleticket
public static void main(String[] args)
MyThread st=new MyThread();
Thread st1=new Thread(st);
Thread st2=new Thread(st);
Thread st3=new Thread(st);
st1.start();
st2.start();
st3.start();
这个程序也共享了啊
人家创建的是实现runnable接口的类创建了3个
你是创建了一个继承thread的,就谈不上资源共享了。
呵呵,明白了吧。 参考技术B 这是许多公司的招聘经常会问。
抽象类和接口的区别如下:
①类继承抽象类,只是其中的一部分的具体方法和抽象方法,实现该接口将不得不实现里面所有的方法。
②在接口的成员变量,抽象类可以有成员变量。
接口在Java中引入来解决这个问题的多重继承。
多线程的继承Thread类与实现Runnable接口。 参考技术C Thread 实现了Runnable接口~~~~
就这一句~~~~~本回答被提问者采纳
以上是关于JAVA多线程继承Thread 与实现Runnable接口的相关疑问的主要内容,如果未能解决你的问题,请参考以下文章
4-5 《Java中多线程重点》——继承Thread实现Runnable死锁线程池Lambda表达式