09 2019 档案

摘要:一、ThreadLocal ThreadLocal类用于隔离多线程中使用的对象,为ThreadLocal类中传递的泛型就是要隔离的对象,简单的来说:如果我们在主线程创建了一个对象,并且需要给下面的多线程任务都传递这个对象,那么如果这个对象传递到ThreadLocal,那么每个线程获取的对象都是独立的 阅读全文
posted @ 2019-09-25 16:23 想去天空的猫 阅读(392) 评论(0) 推荐(0)
摘要:一、等待通知机制wait()与notify() 在线程中除了线程同步机制外,还有一个最重要的机制就是线程之间的协调任务。比如说最常见的生产者与消费者模式,很明显如果要实现这个模式,我们需要创建两个线程,一个生产者,一个消费者;有两个线程还不够,如果当生产者生产商品完成后,消费者如何知道要去消费生产的 阅读全文
posted @ 2019-09-24 15:44 想去天空的猫 阅读(179) 评论(0) 推荐(0)
摘要:一、公平锁与非公平锁 线程所谓的公平,就是指的是线程是否按照锁的申请顺序来获取锁,如果是遵守顺序来获取,这就是个公平锁,反之为非公平锁。 非公平锁的优点在于吞吐量大,但是由于其不是遵循申请锁的顺序来获取锁,就会出现最开始申请的锁一直没有获取到,导致出现饥饿现象。 java中的使用: synchron 阅读全文
posted @ 2019-09-23 19:24 想去天空的猫 阅读(205) 评论(0) 推荐(0)
摘要:在了解JDK提供的线程原子性操作工具类之前,我们应该先知道什么是原子性:在多线程并发的条件下,对于变量的操作是线程安全的,不会受到其他线程的干扰。接下来我们就学习JDK中线程的原子性操作。 一、CAS原理 说道原子性,不得不提的就是CAS原理: 使用锁时,线程获取锁是一种悲观锁策略,即假设每一次执行 阅读全文
posted @ 2019-09-18 15:54 想去天空的猫 阅读(232) 评论(0) 推荐(0)
摘要:线程的安全问题一直是我们在开发过程中重要关注的地方,出现线程安全问题的必须满足两个条件:存在着两个或者两个以上的线程;多个线程共享着共同的一个资源, 而且操作资源的代码有多句。接下来我们来根据JDK自带的方法来解决线程带来的问题。 一、同步代码块synchronized 我们来看一个实例,创建两个线 阅读全文
posted @ 2019-09-17 20:09 想去天空的猫 阅读(233) 评论(0) 推荐(0)
摘要:最近研究了mongodb获取本地连接属性的方案,场景就是mongodb的连接地址不在配置文件中配置,而是在代码中写好,代码中是从本地文件读取地址。 阅读全文
posted @ 2019-09-16 15:50 想去天空的猫 阅读(1713) 评论(0) 推荐(0)
摘要:最近研究RabbitMQ从本地获取配置,主要场景是RabbitMQ的连接配置如:ip地址这些需要从外部的配置服务器获取。面对这个问题,有两个解决方案,一个是用RabbitMQ原生的连接方式,但是如果使用了spring boot这个方法就有点笨拙,所以推荐使用重写RabbitMQ的工厂类Connect 阅读全文
posted @ 2019-09-16 15:25 想去天空的猫 阅读(2693) 评论(0) 推荐(0)
摘要:除了之前介绍的创建线程方式外,spring boot为我们了提供一套完整的线程创建方式,其中包括了:线程、线程池、线程的监控。 一、使用spring boot提供的方法创建线程与线程池 1.首先在spring boot 的启动类上加上注解:@EnableAsync //开启异步线程必须加上注解 @E 阅读全文
posted @ 2019-09-09 16:23 想去天空的猫 阅读(6829) 评论(2) 推荐(2)