• 84864

    文章

  • 744

    评论

  • 18

    友链

  • 最近新加了换肤功能,大家多来逛逛吧~~~~
  • 喜欢这个网站的朋友可以加一下QQ群,我们一起交流技术。

Java线程

撸了今年阿里、腾讯和美团的面试,我有一个重要发现.......>>

1.目录

  1. Java线程之核心概念
  2. Java线程之并行
  3. Java线程之并发
  4. Java线程之创建抽象和执行抽象
  5. Java线程之同步替代方案CAS
  6. Java线程之活跃性危险

2.简介

“核心概念”讲述了线程的三个基本概念:任务对象、线程管理对象、锁对象。然后又提到了线程的两大用处:并行和并发。然后通过图片的形式描述了线程同步的细节。最后概览了线程的状态。

“并行”讲述了在状态独立的情况下,使用并行可以大大提高程序的效率。重点讲了Fork/Join框架的原理和使用,Fork/Join框架适合用少量的线程执行符合分支/合并模型的计算密集型任务。后面还通过一个例子具体展示该怎么设计并行系统。还简要分析了计算密集型任务和IO密集型任务的区别。

“并发”讲述了线程同步,线程协作,并总结了怎样设计一个并发系统。然后分析了并发包里面的锁,并和synchronized进行对比。最后提到Java并发包里面的一些总要同步器。

“创建抽象和执行抽象”讲述了线程池的细节,以及Future模式的原理。可以让“并行”和“并发”系统实现起来更加简单,更加容易控制。

“同步替代方案CAS”讲述了CAS的原理,以及CAS在Java平台的应用,最后介绍了Java平台对应用开发者开放的CAS操作——原子变量类。让同步方案多了一种可能。

“活跃性危险”讲述了线程同步过程中,可能发生的活跃性故障。并分析如何去避免。最后提供了一种监控线程状态的方法,方便发现问题。

本系列文章并没有覆盖Java线程的所有内容,也没有太多的概念介绍和使用细节,适合有一定基础的读者看。本系列文章试图从理解原理的角度,推导出一些最佳实践。在设计并行系统或并发系统的时候,一定要注意和业务系统进行隔离,不要掺杂在业务系统里面,因为这样很容易出错。应该将并行系统或并发系统封装成一个库或框架,供业务系统使用。比如Spring实际上就包含了并行系统(让每个用户请求同时进行,互不干扰),Tomcat实际上包含了并发系统(接收请求线程和处理线程协作,最终将请求信息包装成Java对象送到对应Servlet),还有Java并发包里面的并发集合类……正是因为有这些并行系统和并发系统的支撑,业务代码才能显得简单而美好。可以这么说,使用线程一方面是为了最大限度利用系统性能,一方面是为了保持业务代码简单而美好。

请关注我的公众号:



695856371Web网页设计师②群 | 喜欢本站的朋友可以收藏本站,或者加入我们大家一起来交流技术!

欢迎来到梁钟霖个人博客网站。本个人博客网站提供最新的站长新闻,各种互联网资讯。 还提供个人博客模板,最新最全的java教程,java面试题。在此我将尽我最大所能将此个人博客网站做的最好! 谢谢大家,愿大家一起进步!

转载原创文章请注明出处,转载至: 梁钟霖个人博客www.liangzl.com

0条评论

Loading...


发表评论

电子邮件地址不会被公开。 必填项已用*标注

自定义皮肤
注册梁钟霖个人博客