- 博客(8)
- 收藏
- 关注
原创 多线程---单例模式的实现
单例模式:饿汉式:public class MyObject { private static MyObject obj = new MyObject(); private MyObject(){} public static MyObject getInstance(){ return obj; }}懒汉式:public cl...
2019-06-20 17:28:04 245
原创 多线程---ReentrantLock和ReentrantReanWriteLock
1、ReentrantLock类JDK1.5之后新增的类,使用效果上和synchronized相同,但是功能更强大,例如,嗅探功能、多路分支通知功能等等ReentrantLock结合Condition实现等待/通知 其等价于wait()/notify()区别:wait() notify()/notifyAll():进行通知时,被通知的线程是由JVM随机选择的,而ReentrantL...
2019-06-20 16:39:12 276
原创 多线程---线程间的通信
1、wait()在调用wait()之前,线程必须得到该对象的对象级别锁,也就是说wait()只能在同步方法或同步代码块中调用。执行wait()方法后,当前线程会释放锁,wait()后面的代码如需执行,需要其他线程调用notify()/notifyAll()...
2019-06-20 15:44:56 136
原创 多线程---volatile关键字
volatile 作用:使变量在多线程环境中保持可见性; 缺点:不支持原子性1、volatile是线程同步的轻量级实现,性能方面要优于synchronized,其只能修饰变量。2、volatile是不会发生阻塞的3、volatile能保证数据的可见性,但无法保证数据的原子性;sychronized可以保证数据的原子性,也可以间接的保证可见性。因为它会将私有内存和共有内存中的数据做同步。...
2019-06-19 15:56:04 209
原创 多线程---synchronized的使用
1. synchronized 同步方法 a.、方法内部的变量是线程安全的,它属于方法的私有变量 b、 synchronized声明的方法一定是排队运行的。(一般情况下只有共享资源的读写才需要同步化) c、synchronized声明在方法上时,线程锁的是当前对象。 d、synchronized的锁重入功能 一个线程得到对象锁之后,再次...
2019-06-19 15:02:21 209
原创 多线程---API部分
1. 实现多线程的方式:A. 继承Thread类 B. 实现Runnable接口2. currentThread(): 可获取当前线程的基本信息3. isAlive() : 测试线程是否处于活动状态(线程启动尚未终止,处于正在运行或准备运行的状态)4. sleep() : 在指定的时间内让当前正在执行的线程休眠(不释放锁)5. wait() : 让当前线程暂停,并释放锁,等...
2019-06-19 11:12:36 187
原创 springboot集成swagger遇到的坑
对工作中遇到的问题简单的总结:版本信息: springboot 2.0.5 加swagger2.2问题描述: 在controller 中用@RequestBody注解接收参数时,会导致调用微服务接口的Fegin注入失败;去掉@RequestBody注解,系统正常工作。原因: 应该是swagger2.2不支持该注解导致。解决: ...
2018-10-18 09:15:56 391
原创 oracle主键序列的创建,删除,修改序列起始值
事件背景: 为客户部署oracle数据库后需要将老库中的数据导过来,老库的单表数据2W+由于在为新库的表创建主键自增序列时设置的起始值是3000,导致后续客户使用时,在插入数据时抛出数据库java.sql.SQLException:ORA-00001:违反唯一约束条件异常解决方案: 修改序列起始值: 方法1: 直接删除当前的序列,重新创建...
2018-07-25 11:27:27 3063
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人