Wesley13 Wesley13
3年前
Java 多线程与并发(七):ReentrantLock 与 ReentrantReadWriteLock
ReentrantLock我们已经通过前几章学会了synchronized和AQS等相关只是。下面我们继续来学习ReentrantLock这个并发工具类,如果你已经了解了AQS的机制,那么你学习ReentrantLock将会非常轻松。背景Synchronized关键字虽然在JDK1.6
Stella981 Stella981
3年前
Dockerfile创建tomcat和jdk,并发布java项目
1.准备好需要的jdk和tomcatkun@ubuntu:~$cdtomcatdocker/kun@ubuntu:~/tomcatdocker$lltotal245232drwxrwxrx4kunkun4096May611:34./drwx4ku
Wesley13 Wesley13
3年前
Java多线程与并发之面试经典问题
点击上方☝Java编程技术乐园,轻松关注!及时获取有趣有料的技术文章!(https://oscimg.oschina.net/oscnet/b0e19f003d0fdc9d1cb5c37808023ec8c5e.jpg)原文地址:https://dwz.cn/8NVLDxan进程与线程的区别进程是资源分配的最
Wesley13 Wesley13
3年前
Java SE 8 在并发工具方面的加强
JavaSE8在并发工具方面的加强博客分类:java本文首发于InfoQ(https://www.oschina.net/action/GoToLink?urlhttp%3A%2F%2Fwww.infoq.com%2Fcn%2Fnews%2F2014%2F04%2Fjavase2toolimprove)。Java8在Lambd
Wesley13 Wesley13
3年前
Java多线程并发常用类实例之:Condition
        作为一个示例,假定有一个绑定的缓冲区,它支持 put 和 take 方法。如果试图在空的缓冲区上执行 take 操作,则在某一个项变得可用之前,线程将一直阻塞;如果试图在满的缓冲区上执行 put 操作,则在有空间变得可用之前,线程将一直阻塞。我们喜欢在单独的等待set中保存 put 线程和 take 线程,这样就可
Wesley13 Wesley13
3年前
Java并发(五)任务间使用管道进行通信
通过I/O在线程间进行通信通常很有用。提供线程功能的类库以“管道”的形式对线程间的I/O提供了支持。它们在JavaI/O类库中的对应物就是PipedWriter(允许任务向管道写)和PipedReader(允许不同的任务从同一个管道中读取)。这个模型可以看做是“生产者消费者”问题的变体,这里的管道就是一个封装好的解决方案。管道基本上是一个阻塞队列,
Stella981 Stella981
3年前
Padded优化LinkedTransferQue并发性能是错误方向
在Grizzly中,自带了LinkedTransferQueue,和JDK7自带的LinkedTransferQueue有所不同,不同之处就是使用PaddedAtomicReference来提升并发性能,其实这是一种错误的编码技巧,没有意义!AtomicReference和LinkedTransferQueue的本质是乐观锁,乐观锁的在激烈竞争的时候性
Wesley13 Wesley13
3年前
Java并发编程之锁的活跃性问题
引子在安全性和活跃性之间通常存在一种制衡。当我们使用锁来保证线程的安全的同时,如果过度使用加锁,可能会导致死锁。应用无法从死锁中恢复过来,所以在设计时一定要避免会排除这些可能会出现的活跃性问题。死锁死锁描述了这样一种情景,两个或多个线程永久阻塞,互相等待对方释放资源如果线程1锁住了A,然后尝试对B进行加锁,同
十月飞翔 十月飞翔
3年前
解决数据库高并发访问瓶颈问题
一、缓存式的Web应用程序架构:  在Web层和db层之间加一层cache层,主要目的:减少数据库读取负担,提高数据读取速度。cache存取的媒介是内存,可以考虑采用分布式的cache层,这样更容易破除内存容量的限制,同时增加了灵活性。二、业务拆分:  电商平台,包含了用户、商品、评价、订单等几大模块,最简单的做法就是在一个数据库中分别创建users、sh
高并发下丢失更新的解决方案
作者:谢益培1背景关键词:并发、丢失更新预收款账户表上有个累计抵扣金额的字段,该字段的含义是统计商家预收款账户上累计用于抵扣结算成功的金额数。更新时机是,账单结算完成时,更新累计抵扣金额累计抵扣金额账单金额。2问