摘要: Docker为什么会出现:传统开发中,开发和线上需要两套环境,应用配置,在开发中可以运行的项目在线上可能导致服务不可用。 Docker就可以将一个项目连带 环境(Mysql,Redis,jdk......)一起安装打包,一套流程做完. 阅读全文
posted @ 2020-08-16 14:05 Catbir 阅读(97) 评论(0) 推荐(0) 编辑
摘要: 1.使用线程池的目的:(1)减少系统维护线程的开销 (2)解耦合,运行和创建分开 (3)线程可以复用。 在线程池的编程模式下,任务是提交给整个线程池,而不是直接提交给某个线程,线程池在拿到任务后,就在内部寻找是否有空闲的线程,如果有,则将任务交给某个空闲的线程。以后,该线程并不会死亡,而是再次返回线 阅读全文
posted @ 2020-05-05 22:35 Catbir 阅读(256) 评论(0) 推荐(0) 编辑
摘要: AbstractQueueSynchronizer :同步发生器, 构建Lock的,上文说到cas是无锁的,所以封装级别会比cas较高,但比Synchronized低。 基本思想:通过内置的FIFO同步队列来完成线程的同步资源的管理工作。 CLH同步队列: 每个线程:争夺资源(FIFO公平竞争原则) 阅读全文
posted @ 2020-05-04 00:41 Catbir 阅读(108) 评论(0) 推荐(0) 编辑
摘要: 本内容来自 https://www.jianshu.com/p/fc51be7e5bc0 阅读全文
posted @ 2020-05-04 00:22 Catbir 阅读(104) 评论(0) 推荐(0) 编辑
摘要: AtomicInteger : 大家都知道在多线程情况下 volitile i++无法保证线程的原子性,所以引入AtomicInteger类。 incrementAndGet:实现了原子性的自增 public final int incrementAndGet() { return unsafe.g 阅读全文
posted @ 2020-05-04 00:18 Catbir 阅读(176) 评论(0) 推荐(0) 编辑
摘要: cas :compare and swap(比较和置换),一种无锁乐观锁 作用及优点:无锁,提高了效率,cpu的吞吐量,性能好 缺点:ABA问题 改进: AtomicStampedReference<V> 每个版本赋值个时间戳,进行比较期望值是否发生变化时,就能明显知道除了数值是否发生变化外时间戳是 阅读全文
posted @ 2020-05-04 00:17 Catbir 阅读(131) 评论(0) 推荐(0) 编辑
摘要: 1.使用下列任命令安装Vue CLI npm install -g @vue/cli 2.检查是否安装成功 vue --version 3.初始化Vue Ui vue ui 发现一个有趣的事情:使用vue ui 无效,vue -h发现根本无法使用 vue ui,卸载老版本 npm uninstall 阅读全文
posted @ 2020-04-07 01:23 Catbir 阅读(333) 评论(0) 推荐(0) 编辑
摘要: 关闭防火墙 systemctl stop firewalld.service 开启防火墙 systemctl start firewalld 重启防火墙 firewall-cmd --reload 开放指定端口 firewall-cmd --zone=public --add-port=1935/t 阅读全文
posted @ 2020-03-17 01:36 Catbir 阅读(144) 评论(0) 推荐(0) 编辑
摘要: 1.在interface层添加依赖 <!-- swagger-spring-boot --> <dependency> <groupId>com.spring4all</groupId> <artifactId>swagger-spring-boot-starter</artifactId> <ve 阅读全文
posted @ 2020-03-14 00:51 Catbir 阅读(206) 评论(0) 推荐(0) 编辑
摘要: 查看发现引入 微信实体类时候没有指定版本 <!--引入微信实体类层--> <dependency> <groupId>org.example</groupId> <artifactId>zmn-shop-service-api-weixin</artifactId> </dependency> 同时 阅读全文
posted @ 2020-03-13 01:29 Catbir 阅读(260) 评论(0) 推荐(0) 编辑