标签:情况 java get 方式 ref out 思想 处理 current
线程的创建有三种方法:一是继承Thread类创建线程,二是实现Runnable接口,三是使用Callable和Future创建线程。
步骤:
1 public class ThreadTest extends Thread{ 2 3 private int i; 4 5 public void run(){ 6 7 for( ;i < 100 ; i++ ) { 8 //getName()返回当前线程的名字 9 System.out.println(getName() + " " + i) ; 10 } 11 12 } 13 14 15 public static void main(String[] args) { 16 17 for(int i = 0; i < 100; i++){ 18 //获取当前线程 19 System.out.println(Thread.currentThread().getName() 20 +" " +i); 21 if(i == 20){ 22 new ThreadTest().start(); 23 new ThreadTest().start(); 24 } 25 } 26 } 27 28 }
步骤:
1 public class ThreadTest implements Runnable{ 2 3 private int i; 4 5 public void run(){ 6 7 for( ;i < 100 ; i++ ) { 8 //当线程实现类用Runnable时,如果要获取当前线程 9 //只能用Thread.currentThread() 10 System.out.println(Thread.currentThread().getName() 11 +" " +i); 12 } 13 14 } 15 16 17 public static void main(String[] args) { 18 19 for(int i = 0; i < 100; i++){ 20 //获取当前线程 21 System.out.println(Thread.currentThread().getName() 22 +" " +i); 23 if(i == 20){ 24 ThreadTest st= new ThreadTest(); 25 //通过new thread(target ,name)创建真正的线程对象 26 new Thread(st, "线程1").start(); 27 new Thread(st, "线程2").start(); 28 } 29 } 30 } 31 32 }
使用callable和Future创建线程
查看 http://blog.csdn.net/ghsau/article/details/7451464
采用实现Runnable、Callable接口的方式创见多线程时,优势是:
线程类只是实现了Runnable接口或Callable接口,还可以继承其他类。
在这种方式下,多个线程可以共享同一个target对象,所以非常适合多个相同线程来处理同一份资源的情况,从而可以将CPU、代码和数据分开,形成清晰的模型,较好地体现了面向对象的思想。
劣势是:
编程稍微复杂,如果要访问当前线程,则必须使用Thread.currentThread()方法。
使用继承Thread类的方式创建多线程时优势是:
编写简单,如果需要访问当前线程,则无需使用Thread.currentThread()方法,直接使用this即可获得当前线程。
劣势是:
线程类已经继承了Thread类,所以不能再继承其他父类。
标签:情况 java get 方式 ref out 思想 处理 current
原文地址:http://www.cnblogs.com/cumtlg/p/7581646.html