标签:
本文主要是以知识点的形式对java多线程进行了解,学习java多线程的基础,本文参考书籍《java并发编程实战手册》,若有兴趣想研究跟高级的多线程思想,可以阅读《java并发编程实战》。
1.线程的创建和运行
java线程的创建有三种方式,可能大部分人只知道常用的两种:
1.继承Thread类,并且覆盖run()方法。
2.创建一个实现Runnable接口的类。使用带参数的Thread构造器来创建Thread对象。
3.使用Callable与Future来创建启动线程
<span style="font-family:Comic Sans MS;">import java.util.concurrent.Callable; import java.util.concurrent.FutureTask; public class ThirdThread implements Callable<Integer>{ public Integer call(){ int i = 0; for( ; i<60; i ++){ System.out.println(Thread.currentThread().getName() + "循环变量i的值是 : " + i); } return i; } public static void main(String[] args) { ThirdThread rt = new ThirdThread(); //创建Callable对象 FutureTask<Integer> task = new FutureTask<Integer>(rt);//使用FutrueTask来包装Callable对象 for(int i=0 ; i<60 ; i++){ System.out.println(Thread.currentThread().getName() + "-------" + i); if(i == 10){ new Thread(task, "有返回值的线程").start(); //实际上还是以Callable对象创建并启动线程 } } try{ System.out.println("子线程的返回值 :" + task.get()); } catch(Exception e){ e.printStackTrace(); } } }</span>2. 线程信息
private static ThreadLOcal<Date> startDate = new ThreadLocal<Date>(){ protected Date initialValue(){ return new Date(); } };ThreadLocal为每个线程存储了各自的属性值。
版权声明:本文为博主原创文章,未经博主允许不得转载。
标签:
原文地址:http://blog.csdn.net/jiaomingliang/article/details/47147481