创建线程的三种方式

简介:

  创建线程的方式三种:

复制代码
 1 package cn.crxy.newThread;
 2 
 3 import java.util.concurrent.Callable;
 4 import java.util.concurrent.ExecutionException;
 5 import java.util.concurrent.FutureTask;
 6 
 7 public class NewThreadDemo {
 8 
 9     public static void main(String[] args) throws InterruptedException, ExecutionException {
10         //第一种方式
11         Thread t1 = new Thread(){
12             
13             @Override
14             public void run() {
15                 System.out.println("new Thread 1");//输出:new Thread 1
16             }
17         };//创建线程
18         
19         t1.start();//启动线程
20         System.out.println(t1.getName());//输出:Thread-0
21         
22         //第二种方式
23         Thread t2 = new Thread(new Runnable() {
24             
25             @Override
26             public void run() {
27                 System.out.println("new Thread 2");//输出:new Thread 2
28             }
29         });
30         
31         t2.start();
32 
33         System.out.println(Thread.currentThread().getName());//输出:main
34         
35         
36         //第三种方式
37         FutureTask<String> ft = new FutureTask<String>(new Callable<String>() {
38             
39             @Override
40             public String call() throws Exception {
41                 System.out.println("new Thread 3");//输出:new Thread 3
42                 return "aaaa";
43             }
44         });
45         
46         Thread t3 = new Thread(ft);
47         t3.start();
48         String result = ft.get();
49         System.out.println(result);//输出:aaaa
50         
51     }
52 }
复制代码

首先要明白什么是线程?

明白线程之前要明白什么是进程?

进程是什么呢?  进程是计算机中运行的一个应用程序.

线程:执行该进程的逻辑单元.  线程是用来执行进程的.

 

Java中万物皆对象,线程也被描述成了一个对象就是Thread对象.

Java对多线程的支持也是特别完善的,特别是JDK1.5之后.

 

首先明白什么是线程? 什么是进程?

进程就是计算机中运行的一个应用程序.    线程就是执行该进程的逻辑单元.

 

线程管理:

         创建线程的方式:

                   1.继承Thread类,并复写run方法,创建该类对象,调用start方法开启线程。

                   2.实现Runnable接口,复写run方法,创建Thread类对象,将Runnable子类对象传递给Thread类对象。调用start方法开启线程。

                  

                   第二种方式好,将线程对象和线程任务对象分离开。降低了耦合性,利于维护

                  

                   3.创建FutureTask对象,创建Callable子类对象,复写call(相当于run)方法,将其传递给FutureTask对象(相当于一个Runnable)。

                     创建Thread类对象,将FutureTask对象传递给Thread对象。调用start方法开启线程。这种方式可以获得线程执行完之后的返回值。

 

第三种使用Runnable功能更加强大的一个子类.这个子类是具有返回值类型的任务方法.

第一种和第二种两种方式是run()方法运行完是没有返回值的.

线程的信息: 

复制代码
 1 public class ThreadInfo {
 2 
 3     public static void main(String[] args) {
 4         
 5         Thread t1 = new Thread(new Runnable() {
 6             
 7             @Override
 8             public void run() {
 9                 synchronized (ThreadInfo.class) {
10                     System.out.println("Thread");
11                 }
12             }
13         });
14         
15         t1.start();
16         
17         
18         System.out.println(t1.getId());
19         System.out.println(t1.getName());
20         System.out.println(t1.getPriority());//优先级 1-10
21         System.out.println(t1.getState());//线程状态: NEW TERMINATED RUNNABLE TIMED_WAITING WAITING BLOCKED
22     }
23 }
复制代码

 


本文转自SummerChill博客园博客,原文链接:http://www.cnblogs.com/DreamDrive/p/6180918.html,如需转载请自行联系原作者

相关文章
|
1月前
线程创建的三大方式
线程创建的三大方式
16 0
|
5月前
|
缓存 Java 开发者
(详解版)创建线程的四种方式
(详解版)创建线程的四种方式
78 0
|
5月前
|
Java
多线程创建方式三 - 实现Callable接口
多线程创建方式三 - 实现Callable接口
18 1
|
8月前
|
Java
创建线程的方式
本章讲解了四种创建线程的方式
36 0
|
9月前
|
Java
创建多线程的方式四:使用线程池
创建多线程的方式四:使用线程池
41 0
|
10月前
创建线程的三种方式
创建线程的三种方式
50 0
|
9月前
|
Java
Java并发 -- 创建线程的四种方式
Java并发 -- 创建线程的四种方式
53 0
|
10月前
|
存储 Java
创建线程三种方法
创建线程三种方法
|
12月前
|
Java
创建线程的四种方式
创建线程的四种方式
|
缓存 算法 Java
创建线程池的7种方法
创建线程池的7种方法
173 1