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

点击右上角即可分享
微信分享提示