点击这里给我发消息 点击这里给我发消息
JAVA多线程实现的三种方式

Custom Tab

1、继承Thread类创建线程

Thread类本质上是实现了Runnable接口的一个实例,代表一个线程的实例,启动线程的唯一方法就是通过Thread类的start()实例方法,start()方法是一个native方法,它将启动一个新线程,并执行run()方法。这种方式实现多线程很简单,通过自己的类直接extend Thread,并复写run()方法,就可以启动新线程并执行自己定义的run()方法。例如:

public class MyThread extends Thread {

	@Override
	public void run() {
		System.out.println("MyThread.run()");
	}

	public static void main(String[] args) {
		MyThread myThread = new MyThread();
		myThread.start();
	}
}


2、实现Runnab接口创建线程

如果自己的类已经继承了父类,可以实现一个Runnable接口创建线程,例如:

public class MyThread implements Runnable {

	@Override
	public void run() {
		System.out.println("MyThread.run()");
	}

}

        为了启动MyThread,需要首先实例化一个Thread,并传入自己的MyThread实例:

Runnable myThread = new MyThread();
Thread thread = new Thread(myThread);
thread.start();

3、使用ExecutorService、Callable、Future接口实现有返回结果的线程

可返回值的任务必须实现Callable接口。类似的,无返回值的任务必须实现Runnable接口。

public class CallableAndFuture {
    public static void main(String[] args) throws ExecutionException, InterruptedException {
        ExecutorService executor = Executors.newSingleThreadExecutor();
        Future<String> future = executor.submit(new Callable<String>() {   //接受一上callable实例
            public String call() throws Exception {
                return "callable";
            }
        });
        System.out.println("任务的执行结果:"+future.get());
    }
}

输出:

任务的执行结果:callable



Home