java多线程的创建方式
2013-09-03 10:01
134 查看
启动线程通过两种方式实现:
1、通过实现Runnable接口定义一个由Thread驱动的任务,后通过把自己传给Thread的构造来启动一个线程(Runnable没有返回值,如需返回值则使用Callable接口)。
@实现Runnable的一个任务
public class CountDown implements Runnable {
protected int count = 10;
public static int taskCount = 1;
public final int id = taskCount ++;
@Override
public void run() {
// TODO Auto-generated method stub
while(count -- >0)
{
System.out.println(""+count);
}
System.out.println("count over");
Thread.yield();
}
}
@通过把任务传给Thread的构造来启动线程
public class MainThread {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Thread t = new Thread(new CountDown());
t.start();
}
}
2、直接继承自Thread来创建线程
@继承自Thread的线程
public class CountDown3 extends Thread {
private static int step = 0;
private final int id = step++;
private int count = 10;
@Override
public void run() {
// TODO Auto-generated method stub
super.run();
while(count-- > 0)
{
System.out.println(count);
Thread.yield();
}
}
}
@启动此线程
public class MainThread {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Thread t = new CountDown3();
t.run();
}
}
1、通过实现Runnable接口定义一个由Thread驱动的任务,后通过把自己传给Thread的构造来启动一个线程(Runnable没有返回值,如需返回值则使用Callable接口)。
@实现Runnable的一个任务
public class CountDown implements Runnable {
protected int count = 10;
public static int taskCount = 1;
public final int id = taskCount ++;
@Override
public void run() {
// TODO Auto-generated method stub
while(count -- >0)
{
System.out.println(""+count);
}
System.out.println("count over");
Thread.yield();
}
}
@通过把任务传给Thread的构造来启动线程
public class MainThread {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Thread t = new Thread(new CountDown());
t.start();
}
}
2、直接继承自Thread来创建线程
@继承自Thread的线程
public class CountDown3 extends Thread {
private static int step = 0;
private final int id = step++;
private int count = 10;
@Override
public void run() {
// TODO Auto-generated method stub
super.run();
while(count-- > 0)
{
System.out.println(count);
Thread.yield();
}
}
}
@启动此线程
public class MainThread {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Thread t = new CountDown3();
t.run();
}
}
相关文章推荐
- Java基础:多线程(1)--线程的概述、创建线程的方式、线程的多种状态、线程常用的方法
- 黑马程序员--读写字节数组,随机读写流,集合IO的思维导图,多线程部分,单例设计模式,线程和进程的概念,Java中的线程的创建方式,线程的随机性,线程的状态图,多线程操作共享数据的安全性,死锁
- java多线程之-线程创建方式
- Java创建多线程的三种方式
- Java中使用匿名内部类创建多线程的3种方式
- Java创建多线程的两种方式对比
- (一) Java多线程详解之创建线程的两种方式
- java多线程 -- 创建线程的第三者方式 实现Callable接口
- java多线程总结一:线程的两种创建方式及优劣比较
- 0036 Java学习笔记-多线程-创建线程的三种方式
- Java中使用匿名内部类创建多线程的3种方式
- 黑马程序员——JAVA基础之简述多线程,两种创建多线程的方式
- java多线程总结一:线程的两种创建方式及优劣比较
- 【Java多线程】什么是线程与线程的生命周期与线程的创建方式
- Java多线程:创建线程的两种实现方式
- 【java多线程】多线程的创建三种方式--笔记
- java 多线程的三种创建方式
- java创建启动多线程的三种方式
- Java多线程创建方式
- Java中使用匿名内部类创建多线程的3种方式