Java面试知识点之线程篇(三)
前言:这里继续对java线程相关知识点进行总结,不能间断。
1.yield()方法
yield()的作用是让步。它能让当前线程由“运行状态”进入到“就绪状态”,从而让其它具有相同优先级的等待线程获取执行权;但是,并不能保证在当前线程调用yield()之后,其它具有相同优先级的线程就一定能获得执行权;也有可能是当前线程又进入到“运行状态”继续运行。注意yield()方法并不会释放锁。
具体:
http://www.cnblogs.com/skywang12345/p/3479243.html
2.join()方法
join() 的作用:让“主线程”等待“子线程”结束之后才能继续运行。
参考:
http://www.cnblogs.com/skywang12345/p/3479275.html
3.interrupt()方法
interrupt()方法中断线程。注意这里的中断线程是中断正在阻塞的线程,使其抛出异常。
参考:
http://www.cnblogs.com/skywang12345/p/3479949.html
4.ReentrantLock的使用方法及注意点
注意:ReentrantLock默认为非公平锁,如需设置为公平锁,需要在构造函数中进行设置。
参考:
http://www.cnblogs.com/xrq730/p/4855538.html
5.关于读写锁
读写锁表示两个锁,一个是读操作相关的锁,称为共享锁;另一个是写操作相关的锁,称为排他锁。
参考:
http://www.cnblogs.com/xrq730/p/4855631.html
6.生产者/消费者模型
生产者/消费者模型,在多线程中比较经典,生产者把产品放入中间仓库,消费者从仓库中把产品取出,平衡处理能力。
具体注意该模型中假死问题,单个生产者对多个消费者、多个生产者对单个消费者、多个生产者对多个消费者都可能出现假死。
参考:
http://www.cnblogs.com/xrq730/p/4855663.html
http://www.cnblogs.com/xrq730/p/4855857.html
http://www.cnblogs.com/skywang12345/p/3480016.html
7.线程优先级
Java中线程的优先级默认为5,其优先级范围为1~10,数字越大其优先级越高。“高优先级线程”会优于“低优先级线程”执行,表示获取CPU时间片的机会更大。
参考:
http://www.cnblogs.com/skywang12345/p/3479982.html
https://blog.csdn.net/u013256816/article/details/50392298
8.线程池的五种状态
线程池的状态与线程的状态有所不同,线程池的5种状态是:Running,SHUTDOWN,STOP,TIDYING,TERMINATED。
参考:
http://www.cnblogs.com/skywang12345/p/3509960.html
9.线程池的拒绝策略
线程池一共有四种拒绝策略:
1)AbortPolicy -- 当任务添加到线程池中被拒绝时,它将抛出 RejectedExecutionException 异常。
2)CallerRunsPolicy -- 当任务添加到线程池中被拒绝时,线程池会将被拒绝的任务添加到"线程池正在运行的线程"中取运行。
3)DiscardOldestPolicy -- 当任务添加到线程池中被拒绝时,线程池会放弃等待队列中最旧的未处理任务,然后将被拒绝的任务添加到等待队列中。
4)DiscardPolicy -- 当任务添加到线程池中被拒绝时,线程池将丢弃被拒绝的任务。
参考:
http://www.cnblogs.com/skywang12345/p/3512947.html
10.Semaphore信号量的使用
Semaphore是一个计数信号量,它的本质是一个"共享锁"。
信号量维护了一个信号量许可集。线程可以通过调用acquire()来获取信号量的许可;当信号量中有可用的许可时,线程能获取该许可;否则线程必须等待,直到有可用的许可为止。 线程可以通过release()来释放它所持有的信号量许可。
参考:
http://www.cnblogs.com/skywang12345/p/3534050.html
by Shawn Chen,2018.5.9日,下午。
相关内容
Java面试知识点之线程篇(三)的更多相关文章
- Java面试知识点之线程篇(二)
前言:接上篇,这里继续对java线程相关知识点进行总结. 1.notify和notifyall的区别 notify()方法能够唤醒一个正在等待该对象的monitor的线程,当有多个线程都在等待该对象的 ...
- Java面试知识点之线程篇(一)
前言:在Java面试中,一定会遇到线程相关问题,因此笔者在这里总结Java中有关线程方面知识点,多数从网上得来(文中会贴出主要参考链接),有些也是笔者在面试中所遇到的问题,如有错误,请不吝指正.主要参 ...
- Java面试知识点之计算机网络篇(一)
前言:在Java面试中,计算机网络的知识也是一项重点,因此笔者在此对计算机网络的相关知识进行总结. 1.OSI参考模型 自下而上:物理层(物理介质,比特流).数据链路层(网卡.交换机).网络层(IP协 ...
- Java面试知识点之虚拟机篇(一)
前言:Java虚拟机的重要性不言而喻,不管是在实际工作中,还是面试中. 1.JVM架构 要点: 主要了解Java虚拟机运行时数据区:程序计数器.Java虚拟机栈.本地方法栈.Java堆和方法区. 参考 ...
- Java面试知识点之数据库篇(一)
前言:数据库的相关知识,在面试中也经常出现,笔者认为非常有必要对此类知识进行相关总结. 1.索引 索引是对数据库表中一列或多列的值进行排序的结构,是帮助数据库高效获取数据的数据结构. 通俗理解:索引就 ...
- Java 面试知识点解析(三)——JVM篇
前言: 在遨游了一番 Java Web 的世界之后,发现了自己的一些缺失,所以就着一篇深度好文:知名互联网公司校招 Java 开发岗面试知识点解析 ,来好好的对 Java 知识点进行复习和学习一番,大 ...
- Java 面试知识点解析(二)——高并发编程篇
前言: 在遨游了一番 Java Web 的世界之后,发现了自己的一些缺失,所以就着一篇深度好文:知名互联网公司校招 Java 开发岗面试知识点解析 ,来好好的对 Java 知识点进行复习和学习一番,大 ...
- Java 面试知识点解析(四)——版本特性篇
前言: 在遨游了一番 Java Web 的世界之后,发现了自己的一些缺失,所以就着一篇深度好文:知名互联网公司校招 Java 开发岗面试知识点解析 ,来好好的对 Java 知识点进行复习和学习一番,大 ...
- Java 面试知识点解析(六)——数据库篇
前言: 在遨游了一番 Java Web 的世界之后,发现了自己的一些缺失,所以就着一篇深度好文:知名互联网公司校招 Java 开发岗面试知识点解析 ,来好好的对 Java 知识点进行复习和学习一番,大 ...
随机推荐
- 如何把ASP.NET MVC项目部署到本地IIS上
默认情况下,在VisualStudio中开发网站,会运行在IISExpress中,如果想把网站部署到本地的IIS服务器上该怎么办呢? 一.首先,以管理员身份运行VisualStudio,否则在修改项目 ...
- EF(EntityFramework) 插入或更新数据报错
报错信息:Store update, insert, or delete statement affected an unexpected number of rows (0). Entities m ...
- 分页Sql语句
第一种 Top剔除法.去除Top (pageIndex-1)*PageSize * FROM dbo.SBD_EXCHANGE_BILL ) EB_ID FROM dbo.SBD_EXCHANGE_B ...
- mysqlslap 压力测试使用总结
今天从运维同事那听说了mysql压力测试工具mysqlslap.经了解其实mysql自带就有一个叫mysqlslap的压力测试工具,还是模拟的不错的.下面举例说说.mysqlslap是从5.1.4版开 ...
- SSM-Netty实现软硬件通信,真实项目案例
今天分享的是Myself自己工作项目中的一个模块实例实现的思路还有流程,在这过程中也是遇到了很多问题,能过顺利解决也是团队沟通的结果. 项目模拟背景:假设我们有一个软件平台,我们的线下产品是一些探测器 ...
- Mybatis框架可视化(1)
Mybatis整体架构视图: 接 口 层 SqlSession (定义了Mybatis暴露给应用程序调用的API) 核 心 处 理 层 配置解析 (加载核心配置.映射配置. mapper接口注解信息, ...
- git 拉取分支代码 合分支
git config --global user.name"yourName" //用户名 yourName git config --global user.email" ...
- input file图片上传
<div class="div-title"> <h5>图片上传</h5> <div class="photo-box" ...
- Spider-four
计算机速度比较: CPU -> 寄存器 -> 缓存L1/L2/L3 -> 内存 -> 硬盘 -> 网卡 -> BIOS LMAP: Linux + MySQL + ...
- elementUI vue tree input 懒加载 输入下拉树型示例 点击其他区域关闭自定义div
<!DOCTYPE html> <html lang="zh"> <head> <meta charset="UTF-8&quo ...