1:Thread不能实现线程之间变量资源共享,Runnable则可以
2:Thread是类(是类当然就是单继承),Runnable是接口(接口可以多实现)
Thread
//使用Thread实现线程不能实现资源共享 class MyThread extends Thread { private int ticket=5; private String name; public MyThread(String name ){ this.name=name; } public void run(){ for(int i=0;i<10;i++){ if(ticket>5){ System.out.println("线程"+name+"卖票"+i); } } } } public class ThreadDemo02 { public static void main(String args[]){ // 这里我们new了线程A,B是两个实例,所以不能实现资源(ticket)共享 MyThread A = new MyThread("A"); MyThread B = new MyThread("B"); A.start(); B.start(); } }
Runnable
//使用Runnable实现线程可以实现资源共享 class MyThread implements Runnable { private int ticket=5; private String name; public MyThread(String name){ this.name=name; } public void run(){ for(int i=1;i<=10;i++){ if(ticket>0){ System.out.println("线程"+name+"卖票"+(ticket--)); } } } } public class RunnableDemo02 { public static void main(String args[]){ MyThread A = new MyThread("A"); //实例化线程要执行的任务 Thread Ta = new Thread(A); //实例两个线程对象,实际传递的是一个任务 Thread Tb = new Thread(A); //因为两个线程执行的是一个任务,所以资源(ticket)是共享的 Ta.start(); Tb.start(); } }
以下文章可以进行详细参考:
http://blog.csdn.net/edmond999/article/details/45073329
相关推荐
thread 线程类 实现runnable接口
本文首先介绍了线程的有关概念,接着介绍了线程的生命期及其状态间的转换,多线程的调度 原则,线程的死锁,详细阐述了多线程的两种实现方法: 由Thread类派生子类;实现Runnable接口
我相信对初学者这是很有帮助的,了解两中实现多线程的方法的不同这处
JAVA 的线程详解,有实例的!使用后别忘给个评价>>>>
在Java中创建线程有两种方法:使用Thread类和使用Runnable接口。在使用Runnable接口时需要建立一个Thread实例。因此,无论是通过Thread类还是Runnable接口建立线程,都必须建立Thread类或它的子类的实例。
认识Thread和Runnable 认识Thread的start和run 线程状态说明
主要介绍了java 多线程Thread与runnable的区别的相关资料,java线程有两种方法继承thread类与实现runnable接口,下面就提供实例帮助大家理解,需要的朋友可以参考下
分别用Thread类和Runnable接口实现的阶乘的计算过程及结果的显示(本来一开始设置的不要积分,不知道为啥变得需要积分了,故此调整一下)
这是一道面试题,创建多线程时,使用继承Thread类和实现Runnable接口有哪些区别呢? 一、Thread 先来看看Thread类和其中的start()方法 class Thread implements Runnable{.....} // 可见,Thread类实现了Runnable...
1、Java有两种实现多线程的方式:通过Runnable接口、通过Thread直接实现,请掌握这两种实现方式,并编写示例程序。 2、多线程是并发执行的,交替占有cpu执行,请编写示例程序,并观察输出结果。 3、采用线程同步方法...
在第二种方法中,由于3个Thread对象共同执行一个Runnable对象中的代码,因此可能会造成线程的不安全,比如可能ticket会输出-1(如果我们Syste
在一个线程中求100以内的偶数,求出一个偶数后休眠一个随机时间在(1-300毫秒之间).在另一个线程中求奇数,求出一个奇数后也休眠一个随机时间(1-300毫秒之间).输出数据时应有提示,指明是哪个线程输出的数据 用实例...
java中实现多线程有两种方法:一种是继承Thread类,另一种是实现Runnable接口。
1. 写两个线程,一个线程打印1-52,另一个线程打印字母A-Z。打印顺序为12A34B56C……5152Z。 学习线程之间的通信协调关系。 2. 使用 runnable 接口实现按两... 使用继承Thread类方式和实现Runnable接口两种方式实现。
主要介绍了Java中Thread 和Runnable的区别,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
在Java中只支持单继承,因此通过继承Thread类创建线程有一定的局限性,这时可以使用另一种方式,即实现Runnable接口来创建线程。通过这种方式需要在Thread(Runnable target)的构造方法中,传递一个实现了Runnable...
Thread和Runnable 的区别在面试当中是比较容易考的,自己又刚好在做这个的实验课题,于是乎,决定好好的学习这一部分知识,并把我查过的资料,通过自己的理解,给大家整理出来。 目录 面向小白学习法——Thread...
在多线程编程这块,我们经常要使用Handler(处理),Thread(线程)和Runnable这三个类,那么他们之间的关系你是否弄清楚了呢? 首先说明Android的CPU分配的最小单元是线程,Handler一般是在某个线程里创建的,因而...
主要介绍了Java 线程(Thread,Runnable,Callable)实例详解的相关资料,这里对java 线程的三种方法进行了对比,需要的朋友可以参考下