多线程
cfyme
这个作者很懒,什么都没留下…
展开
-
秒杀系统设计的知识点
秒杀系统涉及到的知识点: A, 高并发,cache,锁机制 B, 基于缓存架构redis,Memcached的先进先出队列。 C, 稍微大一点的秒杀,肯定是分布式的集群的,并发来自于多个节点的JVM,synchronized所有在JVM上加锁是不行了 D, 数据库压力 E, 秒杀超卖问题 F, 如何防止用户来刷, 黑名单?IP限制? G...原创 2015-04-23 12:51:39 · 204 阅读 · 0 评论 -
ThreadPoolExecutor类学习
ThreadPoolExecutor类学习 Java中的线程池技术主要用的是ThreadPoolExecutor 这个类。先来看这个类的构造函数, ThreadPoolExecutor(int corePoolSize, int maximumPoolSize, long keepAliveTime, TimeUnit unit, BlockingQueue<...原创 2015-04-26 08:23:57 · 119 阅读 · 0 评论 -
ReentrantLock可重入锁的使用场景
摘要 从使用场景的角度出发来介绍对ReentrantLock的使用,相对来说容易理解一些。 场景1:如果发现该操作已经在执行中则不再执行(有状态执行) a、用在定时任务时,如果任务执行时间可能超过下次计划执行时间,确保该有状态任务只有一个正在执行,忽略重复触发。b、用在界面交互时点击执行较长时间请求操作时,防止多次点击导致后台重复执行(忽略重复触发)。 以上两种情况多用于进行非重要任务...原创 2015-04-27 09:23:58 · 218 阅读 · 0 评论 -
linkedBlokingQueue源码学习
ReentrantLock是一个较为常用的锁对象 可重入的互斥锁定 与synchronized 相同的一些基本行为和语义,但功能更强大 Condition类与lock绑定,用newCondition()方法创建,提供了线程之间通信的方式(类似信号量)。 其使用基本与object类的wait,notify,notifyAll相同。 1,用condition.await()替换O...原创 2015-04-29 00:22:24 · 178 阅读 · 0 评论 -
JAVA线程池管理及分布式HADOOP调度框架搭建
平时的开发中线程是个少不了的东西,比如tomcat里的servlet就是线程,没有线程我们如何提供多用户访问呢?不过很多刚开始接触线程的开发攻城师却在这个上面吃了不少苦头。怎么做一套简便的线程开发模式框架让大家从单线程开发快速转入多线程开发,这确实是个比较难搞的工程。 那具体什么是线程呢?首先看看进程是什么,进程就是系统中执行的一个程序,这个程序可以使用内存、处理器、文件系统等相关资源。例如...原创 2015-05-12 09:29:05 · 90 阅读 · 0 评论 -
java.util.concurrent并发包诸类概览
java.util.concurrent包的类都来自于JSR-166:Concurrent Utilities,官方的描述叫做“The JSR proposes a set of medium-level utilities that provide functionality commonly needed in concurrent programs. ”。作者是大名鼎鼎的Doug Lea,...原创 2015-05-13 00:03:54 · 139 阅读 · 0 评论 -
[转载] 锁的粒度与死锁概率
首先,我们要定义下什么是“锁的粒度”:所谓粒度就是作用范围,锁的粒度就是锁的作用范围。数据库中锁的粒度从高到低依次划分为:数据库、表、页、行。什么是死锁,顺带说一下吧,当多个操作竞争资源,每个操作都无法获得全部所需资源时,系统进入死锁,如无外力作用,系统将无限等待下去,死锁的四个必要条件:(1) 互斥条件:一个资源每次只能被一个进程使用。(2) 请求与保持条件:一个进程因请求资源而阻塞时,对已获...原创 2015-05-23 10:16:56 · 601 阅读 · 0 评论