- 1、本文档共12页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
一.线程与进程的关系二、139.Java创建多线程的3种方式第3中方式的例子:获得返回值:三、140.创建线程的几种方式的优势分析_线程活动的状态及生命周期1、2、线程的状态例子 IO阻塞四、141.joined线程_后台线程_线程sleep与线程yield的功能与差异1、join线程例子:2、后台线程(Daemon Thread):守护线程(精灵线程)--如果所有的的前台线程死亡,它会自动死亡。例子:3、线程暂停:4、线程的让步:5、sleep与yield的区别6、线程的优先级:级别越高,获得越多被执行的机会-- getPriority()--setPriority(int )设置优先时,不同的操作系统优先级不同。所有不建议直接给优先级的值。五、142.线程安全_同步代码块_同步方法1、一个简单的线程安全问题:竞争资源(共享资源)---如果多条线程并发访问,并修改某个对象,该对象就是“竞争资源”。为了避免多个线程“自由竞争”修改共享资源所导致的不安全问题。于是就使用“加锁”。2、线程的同步(同步锁)第一种方法:同步代码块 -------需要显示指定的同步监视器第二种方法:同步方法 -----相当于使用方法调用者作为同步监视器。如果方法是实例方法,相当于this作为同步监视器。如果方法是类方法,相当于类作为同步监视器。线程的同步关键:(Monitor监视器)任意的线程,进入【同步监视器】监视的代码之前,必须先对【同步监视器】加锁。什么时候释放【同步监视器】的加锁在同步代码块或同步方法执行完成。在代码块遇到break.return跳出该代码块执行同步代码块或同步方法时遇到未捕获的异常。调用了同步监视器的wait()方法什么时候不会释放【同步监视器】的加锁Sleep()、yield()都不会释放。Suspend()也不会释放。(不要用这个方法,api说的)六、143.线程通信(上) 1、如果不加控制,多个线程“自由”的并发执行。 2、可以通过同步,来解决多个进程并发访问竞争资源的问题。线程安全,必然带来性能的降低。(Vector, hashtable)Java倡议为很多类提供两个版本:线程安全的版本,适合多线程访问。StringBuffer线程不安全的版本,适合单线程的环境。StringBuilder 3、如果希望线程之间能够更有序的执行生产者------消费者问题七、144.线程通信(下)Object的Wait() --–控制线程暂停,释放对【同步监视器】的加锁,他会一直等待,直到收到“唤醒”通知。Notify() ----发送唤醒通知。NotifyAll() ---- 发送唤醒通知。-------------只有同步监视器【不是用线程调用】才能调用这些方法八、145.线程组ThreadGroup与未处理的线程异常_Thread.UncaughtExceptionHandler处理器1、线程组在java中使用ThreadGroup来表示线程组。怎样将线程放在线程组中?在创建一个Thread实例时,通过传入的ThreadGroup对象,既可将该线程放入指定的线程组。好处?通过线程组对这批线程进行整体的管理。线程组可以包含线程组和线程ThreadGroup提供的如下两个方法:SetDaemon(Boolean daemon):控制将线程组本身都设置为后台线程组。并不是将它包含的线程设为后台线程。如果它包含的所有线程都死了,后台线程组本身会自动销毁。SetMaxPriority(优先级):它是设置该线程组的最高优先级。该线程组已有的线程的优先级不会受影响。对以后新添加的线程优先级才会受影响。异常在jdk1.5以前,如果线程出现异常,系统会自动回调它所在线程的UncaughtException(Thread t,Throwable e)来修复该异常。可以重新这个方法:那是在jdk1.5之后:线程允许自行设置“异常处理器”,无需线程组。两个方法:Thread.setDefaultUncaughtExceptionHandler() :所有线程(包括主线程)设置默认的异常处理器。Void setUncaughtExceptionHandler:为当前的线程实例设置异常处理器。【实例设置的异常处理器会覆盖默认的异常处理器】九、146.线程池_Executors_ExecutorService_ScheduledExecutorService线程池(Pool)池的本质,就是一种“缓存”技术。是否要缓存一个对象:该对象的创建成本。当然也要考虑到系统的内存大小。缓存的本质:牺牲空间来换取时间。线程对象的创建成本,比较大。虽然创建线程的成本比创建进程的成本要小的多,但相比普通的java对象,Threa
您可能关注的文档
最近下载
- 2025贵州毕节七星关区实验学校教师“跨校竞聘”60人笔试参考题库附答案解析.docx VIP
- 电机拖动与电气控制 第2版 教案全套 葛芸萍 第1--7章 变压器 ---典型机床电气控制.docx
- 汇川变频器MD320手册.pdf VIP
- 2025贵州毕节七星关区碧阳街道中心校(毕节二十二小)教师“跨校竞聘”34人笔试参考题库附答案解析.docx VIP
- 班主任技能竞赛试题 (2).doc VIP
- 吡啶喹唑啉中间体的合成方法与设计方案.pdf VIP
- 培训资料-子宫内膜增生.ppt VIP
- 2025广东惠州市生态环境局博罗分局和博罗县污染防治攻坚战总指挥部办公室招聘编外人员38人笔试备考试题及答案解析.docx VIP
- 2025贵州七星关区洪山街道中心校(毕节四小)教师“跨校竞聘”工作笔试参考题库附答案解析.docx VIP
- 2025入党积极分子发展对象培训考试题库100题含答案(完整版).docx VIP
文档评论(0)