黑马程序员技术交流社区

标题: 多线程总结 [打印本页]

作者: duelxl    时间: 2019-12-23 19:06
标题: 多线程总结
什么是多线程
多线程就是指一个进程中同时有多个执行路径(线程)正在执行。

JAVA程序中新建线程
1)        通过Runnable接口创建线程类

2)  继承Thread类创建线程类

3)        通过Callable和Future创建线程



4)通过线程池创建

新建线程方法的对比

Runnable和Callable的区别

Callable规定(重写)的方法是call(),Runnable规定(重写)的方法是run()。
Callable的任务执行后可返回值,而Runnable的任务是不能返回值的。
Call方法可以抛出异常,run方法不可以。
运行Callable任务可以拿到一个Future对象,表示异步计算的结果。它提供了检查计算是否完成的方法,以等待计算的完成,并检索计算的结果。通过Future对象可以了解任务执行情况,可取消任务的执行,还可获取执行结果。

线程池的优势:
第一:降低资源消耗。通过重复利用已创建的线程降低线程创建和销毁造成的消耗。
第二:提高响应速度。当任务到达时,任务可以不需要等到线程创建就能立即执行。
第三:提高线程的可管理性。线程是稀缺资源,如果无限制的创建,不仅会消耗系统资源,还会降低系统的稳定性,使用线程池可以进行统一的分配,调优和监控。

java内存模型 并发三个特性
1)原子性

原子性指的是一个或者多个操作,要么全部执行并且在执行的过程中不被其他操作打断,要么就全部都不执行。

2)可见性

可见性指多个线程操作一个共享变量时,其中一个线程对变量进行修改后,其他线程可以立即看到修改的结果。

3)有序性

有序性,即程序的执行顺序按照代码的先后顺序来执行。

作者: 柠檬leung不酸    时间: 2020-1-9 11:00
你可以没学历,但你不能没能力!你可以没能力,但你不能不努力!




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2