随笔 - 530
文章 - 0
评论 - 3
阅读 -
10098
01 2025 档案
并发编程记录
摘要:原子性,可见性,有序性 happens-before 原则6条 管程: 互斥:临界区,共享资源 同步 条件变量,等待队列 关于活锁中的"谦让":比如释放锁 CopyOnWriteList ,所谓写时复制: 1. 读的时候读原数组 2. 写(需加锁):创建新数组,把原来的所有东西复制过去,然后更改数组
阅读全文
threadpool execute( )
摘要:线程池的execute实现逻辑: 向线程池提交一个任务,如果线程数不超过核心线程数,就创建线程,否则加入阻塞队列。这里创建的"线程"是一个包装thread类(通过继承)的类,其中run( ) 是一个循环,不断从阻塞队列中取任务执行 final void runWorker(Worker w) { R
阅读全文
如何批量执行异步任务?
摘要:现在有多个异步任务需要处理,考虑用阻塞队列 给线程池提交任务: 将future结果加入阻塞队列 这样先执行完成的可以先消费 BlockingQueue<Integer> bq = new LinkedBlockingQueue<>(); //电商S1报价异步进入阻塞队列 executor.execu
阅读全文
Future 与 FutureTask与线程池
摘要:FutureTask 有future与Runnable的特征 (实现interface) 线程池execute(Runnable) 返回 Future<> future , 可以通过 future.get( ) 获取结果 也可以把FutureTask 提交到线程池执行,然后直接task.get( )
阅读全文