导图社区 多线程
Java 多线程 基础知识 梳理 详细
整理自周志明老师的《深入理解Java虚拟机》某一章节 内 字节码 虚拟机类加载机制 等先关介绍
Java 网络编程 套接字 基础知识 梳理
社区模板帮助中心,点此进入>>
互联网9大思维
组织架构-单商户商城webAPP 思维导图。
域控上线
python思维导图
css
CSS
计算机操作系统思维导图
计算机组成原理
IMX6UL(A7)
考试学情分析系统
多线程
认知
区别
同步与异步
同步
排队执行
效率低但是安全
异步
同时执行
效率高但是数据不安全
并发与并行
并发
同一个时间段内
并行
同一时刻
线程是什么
进程与线程
进程
每个进程都有一个独立的内存空间
线程
是进程中的一个执行路径
共享一个内存空间
线程之间可以自由切换,并发执行
线程之间关系
生产者与消费者
互斥
竞争对象的锁
死锁
线程如何调度
分时调度
平均分配
抢占式调度
优先级队列
多个线程间进行着高速的切换
多线程程序并不能提高程序的运行速度
提高CPU的使用率
程序运行效率
Java相关
线程的状态
New
线程的创建
继承Thread
实现Runnable
Callable使用
1. 编写类实现Callable接口
2. 创建FutureTask对象
3. 启动线程
注意
Runnable 与 Callable的不同点
异常
all()允许抛出异常;un()不能抛出
返回值
Runnable没有;Callable可以
守护线程与用户线程
守护线程
守护用户线程
用户线程
用户线程执行结束,程序结束
Runnable
start()
Blocked
排队竞争对象的锁
waiting
条件满足后唤醒
timed_waiting
条件满足后唤醒或者Thread.sleep(xxx)
线程安全
同步代码块
synchronized(实例或类){}
同步方法
synchronized
显示锁LOck
公平锁与非公平锁
terminated
线程的中断
提醒线程,是否结束执行由线程自己决定
Lambda表达式
jdk1.8引入
线程的管理
线程池
缓存线程池
newCachedThreadPool()
定长线程池
newFixedThreadPool(固定长度的值);
单线程线程池
newSingleThreadExecutor()
周期性任务定长线程池
newScheduledThreadPool(固定长度的值)