
并发
醉死梦红尘丶
学学代码,写写代码
展开
-
集群高并发下如何保证分布式唯一全局id生成
集群高并发下如何保证分布式唯一全局id生成? id生成规则部分硬性要求: 全局唯一 趋势递增 单调递增 信息安全 含时间戳 id生成系统的可用性要求: 高可用 低延迟 高qps 一般通用方案UUID(只有唯一性) UUID.randoomUUID().toString()(不推荐) 无序,无法预测她的生成顺序,不能生成递增有序的数字 主键,id作为主键时再特定的环境会存在一些问题。 索引,B+树索引的分裂 小厂使用mysql:唯一性,递增(不适合) replace into id自增 分布式里原创 2020-12-12 12:36:26 · 353 阅读 · 1 评论 -
线程常用辅助工具类快速入门
简述 countDownLatch:类似减法计数器,给计数器一个初始值,当运行一个线程给他计数器值减一( countDownLatch.countDown();),当计数器归零,唤醒 await()线程。 适用场景:当需要其他线程执行一定数量时,在执行的任务; CyclicBarrier:类似加法计数器,给计数器一个初始值,当(cyclicBarrier.await();)等待线程数量够初始值数量时,开启线程; 适用场景:需要多个线程同时执行时 Semaphone:类似与抢车位,同一时间只能有指原创 2020-09-05 11:54:11 · 202 阅读 · 0 评论 -
数据库进阶MYSQL分层及其优化
1.mysql分层 连接层:提供与客户端连接的服务 服务层:1.提供各种用户使用接口,2提供sql优化器(写的语句和执行可能不一致) 引擎层:提供了各种存储数据的方式 InnoDB :事物优先,(适合高并发操作 使用行锁) MyISAM:性能优先(表锁) 存储层:存储数据 查询数据库支持哪些引擎:show engines; 2.SQL优化 2.1原因:性能低、执行时间长,等待时间长,sql语句欠佳(连接查询),索引失效、服务器参数设置不合理(缓冲、线程数) 2.2sql优化:主要就是优化索引 索原创 2020-09-04 21:34:46 · 424 阅读 · 0 评论 -
并发下的集合问题处理
多线程下操作集合 public class ListTest { public static void main(String[] args) { List<String> list = new ArrayList<>(); for (int i=1;i<=10;i++){ new Thread(() -> { list.add(UUID.randomUUID().toString().sub原创 2020-09-03 18:14:33 · 218 阅读 · 0 评论