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 知识点进行复习和学习一番,大 ...
随机推荐
- [PDOException] PDO::__construct(): php_network_getaddresses: getaddrinfo failed:
执行数据迁移 php artisan migrate 报错: 网上很多资料说开启allow_open_url等其实没卵用...貌似问题出在dns上....原来数据库的配置是这样的 DB_CONNECT ...
- Netty 系列七(那些开箱即用的 ChannelHandler).
一.前言 Netty 为许多通用协议提供了编解码器和处理器,几乎可以开箱即用, 这减少了你在那些相当繁琐的事务上本来会花费的时间与精力.另外,这篇文章中,就不涉及 Netty 对 WebSocket协 ...
- Vue Document
目录 VUE笔记 环境搭建 Vue学习笔记 1.Vue指令 VUE笔记 环境搭建 node -v npm -v npm i -g cnpm --registry=https://registry.np ...
- Java并发编程-Semaphore
基于AQS的前世今生,来学习并发工具类Semaphore.本文将从Semaphore的应用场景.源码原理解析来学习这个并发工具类. 1. 应用场景 Semaphore用来控制同时访问某个特定资源的操作 ...
- 用函数式编程对JavaScript进行断舍离
译者按: 当从业20的JavaScript老司机学会函数式编程时,他扔掉了90%的特性,也不用面向对象了,最后发现了真爱啊!!! 原文: How I rediscovered my love for ...
- 配置安全域名https申请免费证书并配置nginx运行环境
补全信息时选项 在这一步需要去查看进度,下载对应文件上传到对应站点根目录里按照要求建的隐藏类型的文件 如下图 讲证书文件按照下面操作 进行配置项配置https 如下 详情下载附件 server { l ...
- easyUI按钮图表对照大全
easyUI图标与对照类的对应关系:
- SAP FI配置步骤
http://blog.sina.com.cn/s/blog_8eda1a620100uwzj.html No. 配置对象 事务代码 配置内容 路径 备注 1 定义公司 OX15 企业结构>定义 ...
- ViewPager结合view无限滑动
使用viewPager进无限滑动,这里的实现是在适配器里面进行,当然在外头使用滑动监听也行. import android.support.v4.view.PagerAdapter; import a ...
- leetcode-973最接近原点的K个点
leetcode-973最接近原点的K个点 题意 我们有一个由平面上的点组成的列表 points.需要从中找出 K 个距离原点 (0, 0) 最近的点. (这里,平面上两点之间的距离是欧几里德距离.) ...