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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 1352107393 中级黑马   /  2015-4-21 13:55  /  702 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

java多线程的实现1、继承Thread类
2、实现Runnable接口
两者有什么区别吗?

2 个回复

倒序浏览
转载标签:java多线程继承thread实现runnableit此处,以一个简单的卖盘的例子来说明 JAVA多线程 继承Thread 与 实现Runnable接口 的区别!首先创建2个类一、第一个是继承Threadpackage 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 接口方法来做多线程!
以上为转载!!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马