您的位置:首页 > 编程语言 > Java开发

Java创建线程的三种方式

2017-01-30 17:53 288 查看
1.继承Runnable接口

package test;
class RunnableDemo implements Runnable{
private Thread t;
private String threadName;

RunnableDemo(String name){
threadName=name;
System.out.println("Creating "+name);
}
public void run(){
System.out.println("Running "+threadName);
try{
for(int i=4;i>0;i--){
System.out.println("Thread: "+threadName+" "+i);
Thread.sleep(50);
}
}
catch(InterruptedException e){
System.out.println("Thread "+threadName+" Excepted");
}
System.out.println("Thread "+threadName+" Exiting");
}
public void start(){
System.out.println("Starting "+threadName);
if(t==null){
t=new Thread(this,threadName);
t.start();
}
}
}
public class HelloWorld {
public static void main(String []args) {
RunnableDemo R1=new RunnableDemo("thread1");
R1.start();
RunnableDemo R2=new RunnableDemo("thread2");
R2.start();
}
}


2.继承Thread类

package test;
class ThreadDemo extends Thread{
private Thread t;
private String threadName;

ThreadDemo(String name){
threadName=name;
System.out.println("Creating "+name);
}
public void run(){
System.out.println("Running "+threadName);
try{
for(int i=4;i>0;i--){
System.out.println("Thread: "+threadName+" "+i);
Thread.sleep(50);
}
}
catch(InterruptedException e){
System.out.println("Thread "+threadName+" Excepted");
}
System.out.println("Thread "+threadName+" Exiting");
}
public void start(){
System.out.println("Starting "+threadName);
if(t==null){
t=new Thread(this,threadName);
t.start();
}
}
}
public class HelloWorld2 {
public static void main(String []args) {
ThreadDemo T1=new ThreadDemo("thread1");
T1.start();
ThreadDemo T2=new ThreadDemo("thread2");
T2.start();
}
}


3.通过 Callable 和 Future 创建线程
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: