关于Java中Runnable和Thread的一些使用
来源:互联网 发布:淘宝手机端怎么做推广 编辑:程序博客网 时间:2024/05/01 00:23
这几天,看了一下Java中的线程,觉得还是觉得有必要在线程这块儿说一说,因为这里的线程也牵涉到了安卓里的线程使用,好了,废话少说了,步入正题吧! 大家都已知道Runnable只是个接口,里面就一个光秃秃的run方法,关于它,要记住一点,当从Runnable导出一个类时,这个类并无特殊之处,他不会产生内在的线程能力.要实现线程行为,你必须显式地将一个任务(其实我更愿意将Runnable导出的类称之为一个任务)附着在一个线程上(即Thread). 看一下代码大家应该就清楚了,
public class LiftOff implements Runnable{
protected int countDown=10;
private static int taskcount=0;
private final int id=taskcount++;
public LiftOff()
{
}public LiftOff(int ID){ this.countDown=ID;}public String status(){ return "#"+id+"("+(countDown>0? countDown:"Liftoff!")+").";}@Overridepublic void run() { while(countDown-->0) { System.out.print(status()); Thread.yield(); } System.out.println("我是新的线程吗");} public static void main(String[] args) { LiftOff l=new LiftOff(); l.run(); System.out.println("我是主线程");}
}
这里是输出:
0(9).#0(8).#0(7).#0(6).#0(5).#0(4).#0(3).#0(2).#0(1).#0(Liftoff!).我是新的线程吗
我是主线程
可见不能仅用Runnable新建一个线程,这时若用到Thread,如下:
import java.util.concurrent.Executors;public class LiftOff implements Runnable { protected int countDown = 10; private static int taskcount = 0; private final int id = taskcount++; public LiftOff() { } public LiftOff(int ID) { this.countDown = ID; } public String status() { return "#" + id + "(" + (countDown > 0 ? countDown : "Liftoff!") + ")."; } @Override public void run() { while (countDown-- > 0) { System.out.print(status()); Thread.yield(); } System.out.println("我是新的线程吗"); } public static void main(String[] args) { Thread t = new Thread(new LiftOff()); t.start(); System.out.println("我是主线程"); }}
输出:
我是主线程
0(9).#0(8).#0(7).#0(6).#0(5).#0(4).#0(3).#0(2).#0(1).#0(Liftoff!).我是新的线程吗
可见只有Thread类才能创建新的线程,独立于main线程,同时也可用Thread来驱动Runnable
0 0
- 关于Java中Runnable和Thread的一些使用
- Java中Runnable和Thread的区别
- Java中Runnable和Thread的区别
- java中thread和runnable的区别
- Java中Runnable和Thread的区别
- Java中Runnable和Thread的区别
- Java中Runnable和Thread的区别
- Java中Runnable和Thread的区别
- Java中Runnable和Thread的区别
- Java中Runnable和Thread的区别
- Java中Runnable和Thread的区别
- Java中Runnable和Thread的区别
- java中Thread和Runnable的介绍
- Java中Runnable和Thread的区别
- Java中Runnable和Thread的区别
- Java中Runnable和Thread的区别
- Java中Runnable和Thread的区别
- Java中Runnable和Thread的区别
- css中的类选择器多关键字的兼容问题
- [BZOJ2226][Spoj5971][数论]LCMSum[好题]
- android图片压缩总结
- P51 19
- C++模板类学习笔记
- 关于Java中Runnable和Thread的一些使用
- 生成100000以内的素数XML文件的Demo(Jdom写成)
- JQuery中$.ajax()方法参数详解
- hdoj-1214-圆桌会议
- C++文件读写总结
- ACM--steps--dyx--4.2.5--Open the lock(多向广搜)
- sql连接查询问题总结
- 蓝桥杯 顺时针螺旋填入
- day016 Label and Button