创建线程的3种方式
来源:互联网 发布:姗姗手账小铺 淘宝 编辑:程序博客网 时间:2024/06/10 07:34
Thread:继承Thread类,可以直接使用this关键字,不能继承其他类;
runnable:可以继承其他类,多个线程共享一个target,必须使用Thread.currentThread().getName()获取当前线程名称,推荐使用这种;
callable:跟runnable差不多,不过他可以有返回值跟抛出异常;
继承Thread类
package com.jspjs.test.thread;public class CreateByThread extends Thread {private int i;public void run(){for(;i<10;i++){System.out.println(getName()+"|"+i);}}/** * @param args */public static void main(String[] args) {for(int i =0;i<1000;i++){System.out.println(i);if(i==10){new CreateByThread().start();new CreateByThread().start();}}}}
实现Runnable接口
package com.jspjs.test.thread;public class CreateByRunnable implements Runnable {private int i;@Overridepublic void run() {for(;i<10;i++){System.out.println(Thread.currentThread().getName()+"|"+i);}}/** * @param args */public static void main(String[] args) {CreateByRunnable runnable=new CreateByRunnable();new Thread(runnable,"子线程1").start();new Thread(runnable,"子线程2").start();}}
实现Callable接口
package com.jspjs.test.thread;import java.util.concurrent.Callable;import java.util.concurrent.FutureTask;public class CreateByCallable implements Callable<Integer> {@Overridepublic Integer call() throws Exception {Integer i=0;for(;i<10;i++){System.out.println(Thread.currentThread().getName()+"|"+i);}return i;}/** * @param args */public static void main(String[] args) {CreateByCallable callable=new CreateByCallable();FutureTask<Integer> task=new FutureTask<Integer>(callable);new Thread(task,"线程1").start();try {System.out.println("子线程的返回值:"+task.get());} catch (Exception e) {e.printStackTrace();}}}
- 创建线程的3种方式
- NSThread__创建线程的3种方式
- 线程的3种创建方式
- java 创建线程的3种方式
- java线程的3种创建方式
- 线程创建的3种方式
- Thread线程-创建线程的3种方式
- 创建线程的方式
- 创建线程的方式
- 创建线程的方式
- 创建线程的方式
- 线程的创建方式
- 线程的创建方式
- 线程的创建方式
- 创建线程的方式
- objective-c创建线程的3种方式
- 创建Java线程的3种方式及对比
- 创建Java线程的3种方式及对比
- Android APK反编译详解(附图)
- poj 3661 Running
- sqlite3 表里插入系统时间(时间戳)
- Linux用户及权限基础 3---- Linux扩展权限
- Android常用控件之SeekBar的使用
- 创建线程的3种方式
- STL 容器简介:C++ 容器:顺序性容器、关联式容器和容器适配器
- 写在开始的话
- poj 2367 拓扑排序
- ImageView随手势变化 动态缩放
- 我的第一个JSP文件
- jni入门教程之HelloWorld
- paip.输入法编程--词频调整原则--发音长度优先
- Java连接Oracle笔记