本文主要是以知识点的形式对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