
【Concurrency】
fanfan4569
登上山顶,欣喜掩盖疼痛。
展开
-
【Concurrency】之 超越内置锁(使用ReentrantLock)
前言 内置锁虽然方便但限制很多: 一个线程因为等待内置锁而进入阻塞之后,就无法中断该线程了 尝试获取内置锁时,无法设置超时 获得内置锁,必须使用synchronized块 sychronized(object) { // 使用共享资源 ... } 一、使用ReetrantLock ReetrantLock 提供显...原创 2018-05-25 11:50:56 · 269 阅读 · 0 评论 -
【Concurrency】之 并发初识
概念 并发: 同一时间应对(dealing with)多件事情的能力 并行: 同一时间动手做(doing)多件事情的能力 并发程序的执行通常是不确定的,它会随着事件时序的改变而给出不同的结果 并行程序可能是确定的———— 给班里每个小朋友分4个苹果 so, 用支持并行的编程语言可以写出并行程序,而不引人不确定性。 并行架构 (1)位级(bit-level)并行 ...原创 2018-05-21 21:36:19 · 267 阅读 · 0 评论 -
【Concurrency】之 java.util.concurrent包(线程池,写入时复制,阻塞队列)
线程池 场景: 创建线程的代价虽然很低,但也没低到能直接忽视的程度,而每个连接都花费了这个代价 如果每个链接都创建一个线程,当请求连接的速度高于处理连接的速度时,系统的线程数也会随之快速增长,服务器将停止服务甚至奔溃。 来个线程池: // 创建一个线程池,线程池的大小设为可用处理器数的2倍。 // 如果同一时间有超过线程池大小的execute()请求存在,超出的部分...原创 2018-05-28 21:14:30 · 271 阅读 · 0 评论 -
【Concurrency】之 互斥与Java内存模型
Topic 1:互斥(竞态条件) Topic 2:Java内存模型 一、互斥 首先来看个小栗子 多次运行后会发现运行结果会不同。 即,多线程编程的运行结果可能依赖于时序,多次运行的结果并不稳定 多个线程同时使用共享内存时 按照多线程的尿性,必然会打成一团。 栗子2 运行结果为什么会不同呢? ① 线程使用count...原创 2018-05-24 15:46:46 · 263 阅读 · 0 评论