
并发编程
文章平均质量分 92
还是转转
https://github.com/howely
展开
-
读书笔记: Java并发编程实战(6)
6 显式锁、原子变量与CAS6.1 Lock与ReentrantLockLock接口是JDK5.0新增的接口,ReentrantLock是其实现类,比内置锁Sychronized具有更高的灵活性。当内置锁机制不适用时,可作为一种选择方案。...原创 2019-01-28 18:08:43 · 229 阅读 · 0 评论 -
读书笔记: Java并发编程实战(5)
5 性能、可伸缩性与测试线程的最主要目的是提高程序的运行性能。线程可以使程序更加充分地发挥系统的可用处理能力,从而提高系统的资源利用率。资源越多,使用线程进行并发处理就越能提高程序的性能。可伸缩性就是用来描述这种性质的。可伸缩性是指:增加计算资源(如CPU,内存)时,程序的吞吐量或处理能力得到相应的提升。在日常使用大型软件或系统时,应该能体会到这一点。...原创 2019-01-25 17:39:24 · 175 阅读 · 0 评论 -
读书笔记: Java并发编程实战(4)
4 活跃性、性能与测试并发应用程序能及时执行的能力称之为活跃性。由于某些原因导致的应用程序无法执行,就是活跃性故障。原创 2019-01-22 17:53:10 · 208 阅读 · 0 评论 -
读书笔记: Java并发编程实战(3)
3.1 在线程中执行任务串行执行任务所有任务在单个线程中执行,程序简单,安全性也高。但无法提供高吞吐率和快速响应性。显式为任务创建线程通过创建新的线程为任务提供服务,将任务处理逻辑从主线程中分离出来,多个任务可以并行处理,提高了吞吐量和响应速度。当短时间内要处理的任务较多时,为每一个任务创建一个新的线程并不是一个好的做法。因为线程的创建和销毁都是需要开销的,大量的线程在竞争CPU资源时还...原创 2019-01-17 20:03:39 · 159 阅读 · 0 评论 -
读书笔记: Java并发编程实战(2)
2.1 线程安全容器类线程安全容器有同步容器类和并发容器类。同步容器有早期的Vector和HashTable,以及通过Collections.synchronizedXxx等工厂方法创建的容器。这些类实现线程安全的方式是:将它们的状态封装起来,并对每个公有方法都进行同步,使得每次只有一个线程能访问容器的状态。同步容器类的问题同步容器将所有对容器状态的访问都串行化,以实现线程安全性,但这种方...原创 2019-01-07 18:09:54 · 188 阅读 · 0 评论 -
读书笔记: Java并发编程实战(1)
Java并发编程实战是一本比较经典的书,但并不适合没有什么基础的人来读,书中大量的不常用的概念是不太好理解的。推荐先读另一本比较基础的,由电子工业出版社出版的“实战高并发程序设计”,读完之后再来看这本就比较轻松了。博主的另一篇blog中也对并发编程基础知识做了介绍——并发编程基础。...原创 2018-12-27 16:19:18 · 209 阅读 · 0 评论 -
并发编程基础-Java内存模型
Java内存模型主内存和工作内存Java内存模型的主要目标是定义程序中各个变量的访问规则,即在虚拟机中将变量存储到内存中和从内存中取出变量这样的底层细节。此处的变量和Java编程中所说的变量有所区别,它包括了实例字段、静态字段和构成数组对象的元素,但不包括局部变量与方法参数,因为后者是线程私有的,不会被共享,自然就不会存在竞争问题。为了获得较好的执行效率,Java内存模型没有限制引擎使用处理...原创 2018-12-27 16:15:38 · 220 阅读 · 0 评论 -
线程池处理高并发请求
背景:本系统会在每个月特定时间接收上游系统发起的大量请求并进行处理,并将处理结果通过主动回调或提供查询接口的方式反馈给上游系统。原创 2018-06-01 18:35:54 · 8248 阅读 · 1 评论 -
分布式锁实现方式
在分布式系统中,数据的一致性是个重要的问题,为了实现数据一致性,需要很多技术方案来支持,比如分布式锁等。分布式锁又有多种实现方式,如数据库锁,redis分布式锁,还有zookeeper分布式锁。 这里介绍一下redis分布式锁的实现,直接看代码。/** * 获取分布式锁 * * @param lockName 竞争获取锁key * @param acqui............原创 2017-07-20 15:27:22 · 473 阅读 · 0 评论 -
线程池
为了避免系统频繁地创建和销毁线程,可以让创建的线程进行复用。就像数据库连接一样,为了避免每次数据库查询时都重新建立和销毁数据库连接,可以使用数据库连接池维护一些数据库连接,让它们长期保持在一个激活状态,当系统需要使用数据库时,并不是重新创建一个新的连接,而是从连接池中获得一个可用的连接即可,反之当连接需要关闭时并不是真的把连接关闭,而是将这个连接“还”给连接池即可。通过这种方式可以节约不少创建和销毁原创 2017-03-31 20:28:31 · 1108 阅读 · 0 评论 -
线程安全对象简介
基本的线程安全对象有Vector,HashTable,还有经过Collections.synchronizedCollection()方法包装的集合对象。Java并发包中提供的安全类型有ConcurentHashMap,ConcurentLinkedQueue,CopyOnWriteArrayList,还有BlockingQueue的实现类型。另外还有Java原子包中提供的AutormicInteg原创 2017-03-30 22:49:12 · 3011 阅读 · 0 评论