线程的取消与关闭
线程的取消与关闭 在看《java并发编程实战》中的线程的取消和关闭中看到两个例子比较有趣,因此记录下来。 程序目的 想通过某种动作来达到取消某个特定线程的执行,从而达到中断改线程的目的 自定义标志位来控制线程的中断 书中先展示了一种反例,通过自定义标志位来控制线程的中断 product class Producer{ /** * flag标志是否暂停生产 ...
线程的取消与关闭 在看《java并发编程实战》中的线程的取消和关闭中看到两个例子比较有趣,因此记录下来。 程序目的 想通过某种动作来达到取消某个特定线程的执行,从而达到中断改线程的目的 自定义标志位来控制线程的中断 书中先展示了一种反例,通过自定义标志位来控制线程的中断 product class Producer{ /** * flag标志是否暂停生产 ...
AbstractQueuedSynchronizer的源码分析 AQS的全称是AbstractQueuedSynchronizer,AQS提供了一个以FIFO的队列,通过定义一系列阻塞线程的操作为ReentrantLock、ReentrantReadWriteLock、Semaphore、CountDownLatch提供了底层框架支持。 AbstractQueuedSynchronizer的实现类...
Guava的使用 线程池的使用 ListenableFuture是基于装饰器模式实现的 示例 String nameFormat = "thread_factory_%d"; ThreadFactory shardingThreadFactory = ShardingThreadFactoryBuilder.build(nameFormat); Execut...
sharding-jdbc的查询过程分析 上一章简单的说了一下sharding-jdbc的使用方法,这一章分析一下sharding-jdbc进行数据分片的原理 概念 数据分片指的是数据按照某个维度将单一数据库的数据分散到多个数据库或多个数据表中达到已提升性能瓶颈已经可用性的效果。数据分片主要分为水平分片、垂直分片。 水平分片 水平分片指的是根据某种规则将数据分散到多个库或多个表中,每个分片包含数据...
微服务架构下分布式事务的思考 从本地事务到分布式事务的演变 分布式事务是什么? 事务是什么? 二阶段提交 有一个协调者分别在准备和执行阶段对参与者发送命令和进行事务处理的逻辑 三阶段 三阶段是作为二阶段的一种改良策略,优化改良了超时等待的问题和预处理阶段,通过协调者在不同的阶段中判断相应的命令 三阶段分为:预处理、准备、执行。预处理阶段主要是解决,二阶段在准备阶段之前没有筛选过参与者的问题,尽量保...
...