课程大纲

并发一直是开发人员面临的挑战,编写并发程序可能非常困难。 引入并发性时,可能会发生很多事情,并且系统的复杂性会大大增加。

但是,编写健壮的并发程序的能力是开发人员的必备工具,并且可以帮助构建复杂的企业级应用程序。

在本课程中,您将深入探讨并发的魔力。 将向您介绍并发和并发代码的基础知识,并学习诸如原子性,同步和线程安全之类的概念。

在继续学习时,以下课程将介绍您可以利用的工具,例如Fork / Join框架,java.util.concurrent JDK软件包。 总结一下,您将学习测试并发应用程序。

关于作者

Martin是一位软件工程师,在软件开发方面拥有超过10年的经验。他目前的兴趣包括Java EE,专注于HTML5的Web应用程序和性能优化。 目前,Martin在Java EE领域的一家国际运营公司工作,并且对日常使用大型大数据系统的工作感到担忧。

经验教训

在我们课程的第一课中,您将被介绍到神奇的并发世界。 您将了解线程以及如何创建,启动它们,使它们进入睡眠状态等等。 此外,您将首先了解同步以及对变量的原子访问。 每个示例都提供了示例代码。

在本课程中,您将学习并发应用程序的重要方面,例如活动性和多线程。 您将学习如何避免并行编程的常见陷阱,例如死锁,线程饥饿等。此外,您还将了解代码同步以及如何实现同步。 最后,将研究用于编写多线程代码的设计策略。

在本课程中,我们将重点讨论java.util.concurrent包,其中包括许多有趣的类,这些类提供了实现多线程应用程序所需的必要和有用的功能。 我们将看到如何使用相关的API类,例如执行程序,并发集合,原子变量等。

在本课程中,我们讨论多线程应用程序的性能主题。 在定义了性能和可伸缩性这两个术语之后,我们将仔细研究阿姆达尔定律。 在本课程的进一步内容中,我们将看到如何通过应用不同的技术来减少锁争用,如代码示例所示。

在本课程中,我们将讨论Fork / Join框架,该框架从1.7版开始就是JDK的一部分。 该框架提供了一组非常方便的类,可用于根据相关算法编写并发应用程序。 我们将探索主要类,并提供有关如何使用它们的示例。

在最后的课程中,我们将讨论多线程应用程序的测试。 我们实现一个简单的阻塞队列,并在压力测试条件下测试其阻塞行为以及行为和性能。 最后,我们阐明了用于多线程类的单元测试的可用框架(例如JMock,Grobo Utils等)。

请确保转发此消息,让您的社交粉丝知道!

#Java Concurrency Essentials教程-免费超级课程http://t.co/a6estpEWOm pic.twitter.com/NYbZK6xvkt

— Java Code Geeks(@javacodegeeks) ,2015年10月17日

翻译自: https://www.javacodegeeks.com/2015/09/java-concurrency-essentials.html

Java Concurrency Essentials教程相关推荐

  1. concurrency_Java Concurrency Essentials教程

    concurrency 课程大纲 并发一直是开发人员面临的挑战,编写并发程序可能非常困难. 引入并发性时,可能会发生很多事情,并且系统的复杂性会大大增加. 但是,编写健壮的并发程序的能力是开发人员的必 ...

  2. java官网教程(服务器篇)—— 并发

    目录 并发 -- Java平台有api来帮助您开发多线程程序 进程和线程 线程对象 定义和启动线程 用sleep暂停线程 Interrupts(中断) Joins SimpleThreads 示例 同 ...

  3. Java 并发/多线程教程(四)-并发模型

    本系列译自jakob jenkov的Java并发多线程教程(本章节部分内容参考http://ifeve.com/并发编程模型),个人觉得很有收获.由于个人水平有限,不对之处还望矫正! 并发系统可以有多 ...

  4. Java 并发/多线程教程(五)-相同线程

    本系列译自jakob jenkov的Java并发多线程教程,个人觉得很有收获.由于个人水平有限,不对之处还望矫正! 相同线程是一并发框架模型,是一个单线程系统向外扩展成多个单线程的系统.这样的结果就是 ...

  5. Windows下Libvirt Java API使用教程(二)- 接口使用说明

    介绍完libvirt Java API的部署工作: <Windows下Libvirt Java API使用教程(一)- 开发环境部署> 接下来我们就介绍一下接口的使用和代码样例. libv ...

  6. Java NIO系列教程(十二) Java NIO与IO

    原文地址:http://tutorials.jenkov.com/java-nio/nio-vs-io.html 作者:Jakob Jenkov   译者:郭蕾    校对:方腾飞 当学习了Java ...

  7. Windows下Libvirt Java API使用教程(三)- TLS认证访问和动态链接文件依赖

    之前已经介绍过了libvirt api的上手使用方式: <Windows下Libvirt Java API使用教程(二)- 接口使用说明> <Windows下Libvirt Java ...

  8. Xamarin Essentials教程磁力计Magnetometer

    Xamarin Essentials教程磁力计Magnetometer 磁力计也叫地磁.磁感器,可用于测试磁场强度和方向.在手持设备中,通过磁力计可以计算设备的左右.前后倾斜角度,广泛应用于手机各种的 ...

  9. Xamarin Essentials教程打开文件

    Xamarin Essentials教程打开文件 FileSystem类的OpenAppPackageFileAsync()方法可以用来打开App包中特定的文件,其语法形式如下: public sta ...

最新文章

  1. 报名 | DeeCamp2019:实战AI 铸造定雨神针
  2. Python中str()与repr()函数的区别——repr() 的输出追求明确性,除了对象内容,还需要展示出对象的数据类型信息,适合开发和调试阶段使用...
  3. 数据库修改,删除的操作必须有保险操作。
  4. Visual C++——LoadBitmap加载位图的操作过程
  5. 大牛推荐的30本经典编程书籍,从Python到前端全系列。
  6. jax-ws和jax-rs_JAX-RS和JSON-P集成
  7. 浙江大学2009年数学分析考研试题第7题参考解答
  8. ASP.NET 是什么
  9. Spring之占位符配置器
  10. 阶段3 2.Spring_07.银行转账案例_6 测试转账并分析案例中的问题
  11. 计算机考研和软件的区别吗,考研考计算机与考软件有什么区别
  12. java登陆密码加密怎么做,Java如何实现密码加密
  13. 苹果7全网通经常显示无服务器,iPhone 7处理器异响查出元凶?英特尔大喊冤枉
  14. Redis学习之旅--Redis的数据类型你都知道吗?
  15. dns遭到劫持什么意思、dns遭到劫持怎么办有什么方法解决
  16. 摄影中的曝光补偿、白加黑减_我是亲民_新浪博客
  17. 百度地图点击地点显示经纬度并且转换为百度地址及添加控件
  18. list.stream.filter常用方式
  19. 魔界中的黑V天險(2)
  20. 基于RK3288安卓Android5.1平台移植RTL8152驱动

热门文章

  1. ssh(Spring+Spring mvc+hibernate)——DeptServiceImpl.java
  2. JavaScript ECMA
  3. python常见内置函数
  4. python初学函数_Python初学者速收藏!面向Python初学者的知识-函数
  5. controller属于哪一层_别急着换5G,4G手机同样值得考虑!哪几款安卓手机称得上4G机皇?...
  6. python参数_python参数的介绍
  7. ibatis(2)ibatis是什么
  8. intro to JNDI
  9. XML—— 验证XML文档
  10. SpringMvc @RequestParam、 @RequestBody、@RequestPart 的区别