5.并发工具和执行器(Concurrency Utilities and Executors)5.1 并发工具介绍
5.1并发工具介绍
java简单的线程可以满足你去创建多线程的应用,相对单线程来说,java的简单线程的接口应用还是有一定的代表性的。可是那些简单的应用却有如下的问题:
java的简单并发工具应用经常不能够被正确使用,如synchronized和wait()/notify()的工具。这些不正确的工具使用,或说早期的工具会用,将会导致线程间的竞争的现象中出现如下的问题:线程饥饿、死锁和其它的危险情况。这样的问题是很难被发现和打印出来的。
太多依赖于synchronized关键字,将会导致性能问题,甚至影响到了可测试性。这些重要的问题将会在注重线程的系统中更为常见,像互联网的系统。
开发者经常需要更高的线程应用,所就会自己构造线程池和信息间的调用。因为这些的构造并不会包含java的简单的线程接口提供。开发自己构造线程池和信息间的调用将面临的问题是耗时,和有时候难以控制的错误出现。
为了去解决以上提到的问题,Java5构造了并发的工具,像线程池和阻塞队列,使用这些并发的工具可以走到高效和可扩展的效果。这个高性能的线程工具在如下的包中:
java.util.concurrent:这个工具经常用在并发的应用中,如executor(执行器)。
java.util.concurrent.atomic:这个工具类在单一的变量中,提供自由锁和线程安全的应用。
java.util.concurrent.locks:这个工具的风格是提供等待(wait)和锁(lock)的状态。(一个对象让线程执行等待状态,直到它的状态被唤醒,那么它就可以执行了
相对于java的基础控制器——sychronization来说,这个工具会更加好表现和灵活。
对于这些并发工具来说,我们也要介绍一下nanoTime()的方法,这个方法属于java.lang.System的类中,它可以让你通过使用纳秒的粒度来相对测试程序和运行。
并发工具可以分类为:executors、synchronizers、锁框架等。
5.并发工具和执行器(Concurrency Utilities and Executors)5.1 并发工具介绍相关推荐
- java交易撮合怎么实现_「康力电梯002367」“股票实时交易系统如何实现高并发撮合交易?最好有java架构“java 股票分析工具-京东方a小-seo金融...
本文由京东方a小编创作于2020-09-10 21:11:04发布的来源于seo金融股票配资http://www.drill-pipe.com/gov/52833.html请您欣赏.seo金融网拥有众 ...
- python自动化工具哪个好用_10款好用的自动化测试工具推荐
当我们功能测试干的时间比较久了,或者想要学习更多的技术,提升自己的时候,基本上第一时间就会想到的是自动化测试.而在自动化测试领域,自动化工具的核心地位毋庸置疑,下面为大家推荐10款常见常用的自动化测试 ...
- win10文件夹加密_win10优化清理工具:Windows10下删除垃圾文件的12个最佳工具
您的电脑有时可能会充满不必要的临时文件和程序,从而导致速度变慢.垃圾文件和应用程序可能是一个问题,所以今天我们将向您展示在Windows10上删除垃圾的最佳工具.以下便是ghost123为大家推荐的w ...
- 阿里P8架构师谈:高并发与多线程的关系、区别、以及高并发的系统解决方案
原创: 架构师进阶 优知学院 5天前 " 很多只知道高并发,却不知道高并发与多线程的关系,以及真正的高并发应该如何设计技术方案" 01 - 什么是高并发 高并发(High Conc ...
- 并发经验八年架构师:缓存在高并发场景下该如何问题
缓存一致性问题 当数据时效性要求很高时,需要保证缓存中的数据与数据库中的保持一致,而且需要保证缓存节点和副本中的数据也保持一致,不能出现差异现象.这就比较依赖缓存的过期和更新策略.一般会在数据发生更改 ...
- java ee有哪些工具_JavaEE开发中最常用到的技术和工具汇总
原标题:JavaEE开发中最常用到的技术和工具汇总 今天千锋广州小编给大家来介绍一下关于目前JavaEE开发中最常用到的技术和工具的介绍,下面我们一起来看一下吧. 项目管理:Ant,项目管理事实上的标 ...
- 并发和并行的区别_多核、多处理器、并发、并行、超线程概念总结
多核与多处理器 多核( ) 多核处理器就是指单个 CPU 中有多个可执行单元. 如下图所示,单个 CPU 中有两套可执行单元. 多处理器( ) 多处理器系统则是一个拥有多个 CPU 的系统.每个 CP ...
- python开发工具排名-Python程序员必备的四款开发工具
原标题:Python程序员必备的四款开发工具 每一位Python程序员都会有套工具来应对开发工作上的挑战.多年来,Python程序员使用开发工具来完成他们的工作.有很多工具对他们是有用的,不过对于初入 ...
- 工具的学习使用(二):快捷键、工具、批处理
快捷键 Ctrl + Shift + A 核心快捷键 : 查看 Phpstorm 的 action,所谓 action 便是 Phpstorm 的一个原子操作,只要记住这些操作的关键字,进行搜索便可以 ...
- max格式转obj小工具_PDF文件转JPG等图片格式的小工具
不点蓝字,我们哪来故事? 今天小夭给大家介绍一个好用的PDF文件转JPG/PNG等图片格式的小工具,非常简单好用.它是一款免费的软件,一款体积小巧的PDF转换为图片文件的软件.PDF转JPG工具可以将 ...
最新文章
- 什么是 Ethernet Switch
- fixing macOS Sierra fatal error: 'openssl/opensslv.h' or 'openssl/aes.h' file not found
- 基于MVC4+EasyUI的Web开发框架经验总结(13)--DataGrid控件实现自己主动适应宽带高度...
- eclipse工作空间在哪里配置?
- ITK:获取或设置ITK类的成员变量
- 提示用户输入一个高考_2020年湖南省高考成绩查询方式及录取动态查询方式
- python数学计算函数_Python 内置函数(数学运算类,逻辑判断类)
- 树状数组相关应用之二元变量结构体组队问题
- mysql 岩机_mysql数据库基本应用
- 【莓闻】芮成钢专访黑莓CEO巴尔西利
- testbench实例 vhdl_testbench_testbench如何加载_vhdl testbench reset(5)
- 《计算机网络 第七版》读后感
- python将一个word文档中内容全部复制,添加到另一个word文档末
- NAT MASQUERADE
- 吴恩达深度学习工程师系列课程笔记(Deep Learning Specialization - deeplearning.ai)
- 项目中使用 husky 配合 lint-staged 进行git提交前代码检查
- echarts 水滴图实现方式。
- 当x大于时,y等于1;当x等于0时,y等于0;当x小于0时,y等于-1。
- 剑指台积电!英特尔砸200亿美元建厂进军芯片代工
- SQL Server 递归查询上下级
热门文章
- [JLOI2015]城池攻占 左偏树
- 使用Memcache在PHP中调试方法的介绍及应用
- [翻译]利用C#获取终端服务(Terminal Services)会话的闲置时间
- css3制作的载入动画效果,效果很震撼!
- 关于ContentResolver
- matlab打乱矩阵行,matlab 中,怎么让一个矩阵按某一列排列,并且行也跟着变动?...
- 各路由协议防环机制汇总(一)
- centos 7和centos6修改默认启动模式的方法
- PXE+kickstart 无人值守安装CentOS 6
- shell脚本实例(随堂笔记)