Java 给多线程编程提供了内置的支持。 一条线程指的是进程中一个单一顺序的控制流,一个进程中可以并发多个线程,每条线程并行执行不同的任务,多线程是多任务的一种特别的形式
Java 给多线程编程提供了内置的支持。 一条线程指的是进程中一个单一顺序的控制流,一个进程中可以并发多个线程,每条线程并行执行不同的任务,多线程是多任务的一种特别的形式,但多线程使用了更小的资源开销
Java 给多线程编程提供了内置的支持。 一条线程指的是进程中一个单一顺序的控制流,一个进程中可以并发多个线程,每条线程并行执行不同的任务,多线程是多任务的一种特别的形式,但多线程使用了更小的资源开销
大家好,我是贾斯汀,今天主要聊一聊关于线程的瓜!
先来看一下线程这张图线程的几种运行状态之间运行流程:
看不懂没关系,慢慢来学习,往下学习来继续了解一下~
主要由四种方式创建线程:
具体每一种创建方式说明及代码实现如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
|
/** * 创建Thread线程的四种方式之内部类写法 */ public class NewThread { public static void main(String[] args) throws Exception { //方式1 Thread t1 = new Thread(){ @Override public void run() { System.out.println( "方式1:继承Thread类并重写run()方法创建线程,无返回值" ); } }; t1.start(); Thread.sleep( 1000 ); //方式2 Thread t2 = new Thread( new Runnable() { @Override public void run() { System.out.println( "方式2:实现Runnable接口并重写run()方法创建线程,无返回值" ); } }); t2.start(); Thread.sleep( 1000 ); //方式3 FutureTask<String> ft = new FutureTask<>( new Callable<String>() { @Override public String call() throws Exception { String result = "方式3:实现Callable接口并重写call()方法新建FutureTask对象作为new Thread实例化参数创建线程,有返回值" ; return result; } }); Thread t3 = new Thread(ft); t3.start(); System.out.println(ft.get()); //输出返回值 Thread.sleep( 1000 ); //方式4 ExecutorService pool = Executors.newFixedThreadPool( 5 ); Future<String> future = pool.submit( new Callable<String>(){ @Override public String call() throws Exception { String result = "方式4:通过工具类Executors创建线程池,调用submit新建Future对象并重写Callable接口重写call()方法创建线程,有返回值" ; return result; } }); pool.shutdown(); //关闭线程池 System.out.println(future.get()); //输出返回值 } } |
到此这篇关于Java线程的全方位详解的文章就介绍到这了,更多相关Java 线程内容请搜索米米素材网以前的文章或继续浏览下面的相关文章希望大家以后多多支持米米素材网!
原文链接:https://blog.csdn.net/qq_33414271/article/details/78522235
发表评论