Java Concurrency Essentials教程
课程大纲
并发一直是开发人员面临的挑战,编写并发程序可能非常困难。 引入并发性时,可能会发生很多事情,并且系统的复杂性会大大增加。
但是,编写健壮的并发程序的能力是开发人员的必备工具,并且可以帮助构建复杂的企业级应用程序。
在本课程中,您将深入探讨并发的魔力。 将向您介绍并发和并发代码的基础知识,并学习诸如原子性,同步和线程安全之类的概念。
在继续学习时,以下课程将介绍您可以利用的工具,例如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教程相关推荐
- concurrency_Java Concurrency Essentials教程
concurrency 课程大纲 并发一直是开发人员面临的挑战,编写并发程序可能非常困难. 引入并发性时,可能会发生很多事情,并且系统的复杂性会大大增加. 但是,编写健壮的并发程序的能力是开发人员的必 ...
- java官网教程(服务器篇)—— 并发
目录 并发 -- Java平台有api来帮助您开发多线程程序 进程和线程 线程对象 定义和启动线程 用sleep暂停线程 Interrupts(中断) Joins SimpleThreads 示例 同 ...
- Java 并发/多线程教程(四)-并发模型
本系列译自jakob jenkov的Java并发多线程教程(本章节部分内容参考http://ifeve.com/并发编程模型),个人觉得很有收获.由于个人水平有限,不对之处还望矫正! 并发系统可以有多 ...
- Java 并发/多线程教程(五)-相同线程
本系列译自jakob jenkov的Java并发多线程教程,个人觉得很有收获.由于个人水平有限,不对之处还望矫正! 相同线程是一并发框架模型,是一个单线程系统向外扩展成多个单线程的系统.这样的结果就是 ...
- Windows下Libvirt Java API使用教程(二)- 接口使用说明
介绍完libvirt Java API的部署工作: <Windows下Libvirt Java API使用教程(一)- 开发环境部署> 接下来我们就介绍一下接口的使用和代码样例. libv ...
- Java NIO系列教程(十二) Java NIO与IO
原文地址:http://tutorials.jenkov.com/java-nio/nio-vs-io.html 作者:Jakob Jenkov 译者:郭蕾 校对:方腾飞 当学习了Java ...
- Windows下Libvirt Java API使用教程(三)- TLS认证访问和动态链接文件依赖
之前已经介绍过了libvirt api的上手使用方式: <Windows下Libvirt Java API使用教程(二)- 接口使用说明> <Windows下Libvirt Java ...
- Xamarin Essentials教程磁力计Magnetometer
Xamarin Essentials教程磁力计Magnetometer 磁力计也叫地磁.磁感器,可用于测试磁场强度和方向.在手持设备中,通过磁力计可以计算设备的左右.前后倾斜角度,广泛应用于手机各种的 ...
- Xamarin Essentials教程打开文件
Xamarin Essentials教程打开文件 FileSystem类的OpenAppPackageFileAsync()方法可以用来打开App包中特定的文件,其语法形式如下: public sta ...
最新文章
- 报名 | DeeCamp2019:实战AI 铸造定雨神针
- Python中str()与repr()函数的区别——repr() 的输出追求明确性,除了对象内容,还需要展示出对象的数据类型信息,适合开发和调试阶段使用...
- 数据库修改,删除的操作必须有保险操作。
- Visual C++——LoadBitmap加载位图的操作过程
- 大牛推荐的30本经典编程书籍,从Python到前端全系列。
- jax-ws和jax-rs_JAX-RS和JSON-P集成
- 浙江大学2009年数学分析考研试题第7题参考解答
- ASP.NET 是什么
- Spring之占位符配置器
- 阶段3 2.Spring_07.银行转账案例_6 测试转账并分析案例中的问题
- 计算机考研和软件的区别吗,考研考计算机与考软件有什么区别
- java登陆密码加密怎么做,Java如何实现密码加密
- 苹果7全网通经常显示无服务器,iPhone 7处理器异响查出元凶?英特尔大喊冤枉
- Redis学习之旅--Redis的数据类型你都知道吗?
- dns遭到劫持什么意思、dns遭到劫持怎么办有什么方法解决
- 摄影中的曝光补偿、白加黑减_我是亲民_新浪博客
- 百度地图点击地点显示经纬度并且转换为百度地址及添加控件
- list.stream.filter常用方式
- 魔界中的黑V天險(2)
- 基于RK3288安卓Android5.1平台移植RTL8152驱动
热门文章
- ssh(Spring+Spring mvc+hibernate)——DeptServiceImpl.java
- JavaScript ECMA
- python常见内置函数
- python初学函数_Python初学者速收藏!面向Python初学者的知识-函数
- controller属于哪一层_别急着换5G,4G手机同样值得考虑!哪几款安卓手机称得上4G机皇?...
- python参数_python参数的介绍
- ibatis(2)ibatis是什么
- intro to JNDI
- XML—— 验证XML文档
- SpringMvc @RequestParam、 @RequestBody、@RequestPart 的区别