随笔分类 -  并发

一些同步组件的学习
摘要:如何正确停止线程? 停止线程应该是一种通知协作的方式,比如interrupt,但是它仅仅是通知线程,线程拥有完全的自主权,根据自身业务来判断什么时候停止,因为如果选择立即停止就可能导致数据不完整这种问题 在休眠状态的线程是否可以感应到中断 可以,程序会抛出一个异常 为什么用 volatile 标记位 阅读全文
posted @ 2022-09-23 11:44 山野村夫01 阅读(22) 评论(0) 推荐(0) 编辑
摘要:属性:公平,互斥,可重入(业务涉及不多) 可使用redis,zookeeper,etcd实现 redis实现: 一般追求高性能使用redis redis采用单线程架构,可以保证单个命令的原子性,但是无法保证一组命令在高并发场景下的原子性(引入lua脚本) 注意点: 独占排他:setnx 防死锁: r 阅读全文
posted @ 2022-09-12 21:11 山野村夫01 阅读(514) 评论(0) 推荐(0) 编辑
摘要:并发编程学习Semaphore Semaphore 可以允许多个线程访问一个临界区。 应用:实现线程池 CountDownLatch 应用: 业务原始状态:一个线程执行查询订单,查询派送单,对比差异,写入数据库 优化后:多线程并发执行:一个线程查询订单,一个线程查询派送单,一个线程对比差异并写入数据库 问题:线 阅读全文
posted @ 2022-08-22 11:58 山野村夫01 阅读(20) 评论(0) 推荐(0) 编辑

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