java线程启动三种方式
来源:互联网 发布:淘宝用什么打折软件 编辑:程序博客网 时间:2024/06/05 23:55
1、继承Thread,重写run()方法;
public class TestThread extends Thread{public static void main(String[] args) {TestThread myThread1=new TestThread();TestThread myThread2=new TestThread();myThread1.start();myThread2.start();}public void run(){System.out.println(Thread.currentThread().getName()+"线程开启");;}}2、实现Runnable接口,重写run()方法;
public class TestThread implements Runnable{public static void main(String[] args) {TestThread myThread1=new TestThread();TestThread myThread2=new TestThread();new Thread(myThread1).start();new Thread(myThread2).start();}public void run(){System.out.println(Thread.currentThread().getName()+"线程开启");}}2、实现Callable接口(线程池)
import java.util.concurrent.Callable;import java.util.concurrent.ExecutorService;import java.util.concurrent.Executors;public class TestThread implements Callable<String>{public static void main(String[] args) throws Exception {TestThread myThread1=new TestThread();TestThread myThread2=new TestThread();ExecutorService pool = Executors.newFixedThreadPool(2);pool.submit(myThread1);pool.submit(myThread2);}@Overridepublic String call() throws Exception {System.out.println(Thread.currentThread().getName()+"线程开启");return Thread.currentThread().getName();}}
3.2实现Callable接口,用FutureTask取得call返回结果
import java.util.concurrent.Callable;import java.util.concurrent.FutureTask;public class TestThread implements Callable<String>{public static void main(String[] args) throws Exception {TestThread myThread1=new TestThread();TestThread myThread2=new TestThread();FutureTask<String> task1=new FutureTask<String>(myThread1);//取得call返回结果FutureTask<String> task2=new FutureTask<String>(myThread2);//取得call返回结果//FutureTask是Runnable接口子类,所以可用thread类接收tasknew Thread(task1).start();new Thread(task2).start();//FutureTask父接口future可以接收线程执行完毕后的内容System.out.println(task1.get());System.out.println(task2.get());}@Overridepublic String call() throws Exception {System.out.println(Thread.currentThread().getName()+"线程开启");return Thread.currentThread().getName();}}
阅读全文
0 0
- java 启动线程三种方式
- java 启动线程三种方式
- java 启动线程三种方式
- Java 启动线程三种方式
- java 启动线程三种方式
- java 启动线程三种方式
- java 启动线程三种方式
- java 启动线程三种方式
- java线程启动三种方式
- java 启动线程的两种方式
- java创建线程的三种方式
- java的线程的三种方式
- java线程的三种实现方式
- java创建线程的三种方式
- Java创建线程的三种方式
- Java线程创建的三种方式
- Java创建线程的三种方式
- Java线程实现的三种方式
- web接口测试之GET与POST请求
- XML--语法
- 基本类型和引用类型赋值
- 神经网络与深度学习(一)- Logistic Regression as a Neural Network
- Springmvc文件上传/下载
- java线程启动三种方式
- (CodeForces
- 图片裁剪
- 笔记—自定义View之绘制顺序
- 多图上传到服务器
- Debian 9 GNOME自定义终端文件快捷键
- Setup GCS dev enviroment
- STM32_USB-FS-Device_Lib_V4.0.0中CustomHID实例在STM3210E-EVAL上的实现
- 关于不等号(!=,<>)没有生效问题