博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
创建线程的三种方式
阅读量:5256 次
发布时间:2019-06-14

本文共 2903 字,大约阅读时间需要 9 分钟。

  创建线程的方式三种:

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             @Override14             public void run() {15                 System.out.println("new Thread 1");//输出:new Thread 116             }17         };//创建线程18         19         t1.start();//启动线程20         System.out.println(t1.getName());//输出:Thread-021         22         //第二种方式23         Thread t2 = new Thread(new Runnable() {24             25             @Override26             public void run() {27                 System.out.println("new Thread 2");//输出:new Thread 228             }29         });30         31         t2.start();32 33         System.out.println(Thread.currentThread().getName());//输出:main34         35         36         //第三种方式37         FutureTask
ft = new FutureTask
(new Callable
() {38 39 @Override40 public String call() throws Exception {41 System.out.println("new Thread 3");//输出:new Thread 342 return "aaaa";43 }44 });45 46 Thread t3 = new Thread(ft);47 t3.start();48 String result = ft.get();49 System.out.println(result);//输出:aaaa50 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-1021         System.out.println(t1.getState());//线程状态: NEW TERMINATED RUNNABLE TIMED_WAITING WAITING BLOCKED22     }23 }

 

转载于:https://www.cnblogs.com/DreamDrive/p/6180918.html

你可能感兴趣的文章
字符串indexOf()的用法
查看>>
中国黑客必知必去的十大黑客网站,三大黑客杂志
查看>>
socketserver 模块的使用
查看>>
Rails使用PostgreSQL在Heroku上部署
查看>>
js循环读取table里面的数据
查看>>
清明祭祖
查看>>
学习笔记--树上差分
查看>>
[持续更新]一些结论与技巧
查看>>
英语口语考试资料Friendships
查看>>
C# delegate和C# event
查看>>
mybatis系列-09-订单商品数据模型
查看>>
Appium基础五:appium相关API
查看>>
java集合杂谈
查看>>
apace搭建站点
查看>>
css元素的margin,padding
查看>>
C#ListView控件的属性和实际操作
查看>>
java中Statement详细用法。
查看>>
UISearchDisplayController隐藏navigationBar需注意
查看>>
个人知识管理软件
查看>>
Oracle Partition 分区详细总结
查看>>