
并发编程
gimm667
这个作者很懒,什么都没留下…
展开
-
tomcat调优--bio/nio/apr
tomcat7.x默认使用biotomcat8.x默认使用nioapr,http11AprProtocol -----------------包括高级IO功能,sendfie,epoll, openSSL -----------------OS级别功能,随机数生成 -----------------本地进程管理,共享内存,NT管道apr内核态性能优于>nio,更适合高并发场景需要安装第三方库,提升性能...原创 2020-05-24 01:39:51 · 240 阅读 · 0 评论 -
jdk--ThreadPoolExecutor2--LinkedBlockingQueue
ThreadPoolExecutor线程池满拒绝执行策略,默认abortpolicy,不执行并抛出异常AbortPolicy拒绝策略implements RejectExecutionHandler实现rejectExecution(){//抛出异常throw new RejectExecutionException("task"..runnable reject from executor)}blockingqueue-->在ThreaPoolExecutor中使用r..原创 2020-05-21 00:47:53 · 204 阅读 · 0 评论 -
jdk--ThreadPoolExecutor1--线程池并发线程数
充分利用CPU多核,每个内核不闲置线程池线程数--->基于Ncpu核数 线程任务------计算密集型 -------IO密集型计算密集型,线程数=CPU核数 --------------CPU1,没有IO等待,一直计算执行繁忙 --------------CPU2,没有IO等待,一直计算...原创 2020-05-17 03:47:01 · 255 阅读 · 0 评论 -
mysql--数据库并发2
mvcc多版本 事务并发场景,同一数据源----同一数据结果集,可能一条记录,可能多条记录 快照读 repeatable-read---隔离级别,tx-isolation 普通select 解决读写之间一致性问题,当前事务内,版本号使用于同一事务内 ...原创 2020-05-10 23:58:05 · 109 阅读 · 0 评论 -
mysql--数据库并发1
mvcc并发读写实现思路基于多版本---相对应lbcc基于锁的并发控制多版本,读不加锁,并发读写不冲突快照读,读取历史版本,不影响其他事务写当前读,读取当前记录最新版本,返回的当前记录加锁,其他事务不会并发修改这条记录数据行锁悲观锁,乐观锁保证并发共享数据更新正常乐观锁不对操作限制不对,最终对版本号判断,版本号不相等无效操作,过多资源浪费,用户无效操作悲观锁,数据库控制,开启事务,按先后顺序操作,前事务执行---->后续事务等待...原创 2020-05-08 22:42:40 · 280 阅读 · 0 评论 -
线程并发锁竞争--java锁jvm锁--synch锁分析
cas compare and swap,比较交换,atomic原子类,native unsafe compareAnd,汇编实现asm汇编,lock xchge,多核lock其他核不能操作synch锁升级过程,根据竞争情况升级无锁(new)->偏向锁(占用标签)->轻量级锁自旋锁->重量级锁(操作系统底层内核态申请) markwo...原创 2020-04-24 14:05:15 · 210 阅读 · 0 评论 -
线程并发锁竞争--java锁jvm锁--synch与reentrantLock比较1
sych在线程竞争中情况最终使用重量级锁,线程较少情况使用偏向锁->自旋锁当大量线程并发出现,自旋锁升级为重量级锁,因为jvm调优当大量线程自旋太过消耗CPU资源,启用重量级锁,没有获得锁的线程到等待队列挂起等待,不消耗CPUreetrantLock实现基于AQS(CAS),使用自旋队列方式,所以在较大线程并发情况占用CPU比较消耗CPU资源condition,重...原创 2020-04-24 14:08:40 · 216 阅读 · 0 评论