- 博客(6)
- 资源 (15)
- 收藏
- 关注
转载 juc包下四大并发工具
1.juc.CountDownLatch 闭锁一个线程在等待一组线程后再恢复执行await()等待其他线程执行完毕被等待线程执行完毕后计数器-1如何知道其他线程执行完了?计数器,若一组线程为,CountDown为5,减到0代表等待线程被全部执行完毕一次性工具:当Countdown的值减到0的时候再也无法恢复juc内部的代码都是lock体系来实现的import java.util.concurrent.CountDownLatch;import java.util.conc
2021-08-31 23:38:40 308
转载 Java原子类及内部原理
一、引入 原子是世界上的最小单位,具有不可分割性。比如 a=0;(a非long和double类型) 这个操作是不可分割的,那么我们说这个操作是原子操作。再比如:a++;这个操作实际是a = a + 1;是可分割的,所以他不是一个原子操作。非原子操作都会存在线程安全问题,需要我们使用同步技术(sychronized)来让它变成一个原子操作。 但是,像i++这种非原子操作,我们除了使用synchroinzed关键字实现同步外,还可以使用java.util.concurre...
2021-08-31 23:22:15 197
转载 消息队列使用的四种场景介绍
一、简介消息队列中间件是分布式系统中重要的组件,主要解决应用耦合,异步消息,流量削锋等问题实现高性能,高可用,可伸缩和最终一致性架构使用较多的消息队列有ActiveMQ,RabbitMQ,ZeroMQ,Kafka,MetaMQ,RocketMQ二、消息队列应用场景以下介绍消息队列在实际应用中常用的使用场景。异步处理,应用解耦,流量削锋和消息通讯四个场景2.1异步处理场景说明:用户注册后,需要发注册邮件和注册短信。传统的做法有两种 1.串行的方式;2.并行方式(1)串行方式:将
2021-08-11 22:10:59 6674
转载 缓存与数据库一致性之一:缓存更新设计
一、缓存更新场景介绍缓存是一种提高系统读性能的常见技术,对于读多写少的应用场景,我们经常使用缓存来进行优化。例如对于用户的余额信息表account(uid, money),业务上的需求是:(1)查询用户的余额,SELECT money FROM account WHERE uid=XXX,占99%的请求(2)更改用户余额,UPDATE account SET money=XXX WHERE uid=XXX,占1%的请求由于大部分的请求是查询,我们在缓存中建立uid到money的键值
2021-08-09 20:56:21 192
转载 怎么保证 缓存和数据库中的数据一致
你只要用缓存,就可能会涉及到缓存与数据库双存储双写,你只要是双写,就一定会有数据一致性的问题,那么你如何解决一致性问题?首先需要考虑到:更新数据库或者更新缓存都有可能失败,在这种前提下分析业务带来的影响。 一般来说,如果允许缓存可以稍微的跟数据库偶尔有不一致的情况,也就是说如果你的系统不是严格要求“缓存+数据库” 必须保持一致性的话,最好不要做这个方案,即:读请求和写请求串行化,串到一个内存队列里去。 串行化可以保证一定不会出现不一致的情况,但是它也会导致系统的吞吐量大幅度降低,用比正常情.
2021-08-08 22:39:37 899
原创 单例模式的八种写法
1、饿汉式(静态常量)[可用]public class Singleton { private final static Singleton INSTANCE = new Singleton(); private Singleton(){} public static Singleton getInstance(){ return INSTANCE; }}优点:这种写法比较简单,就是在类装载的时候就完成实例化。避免了线程同步问题。缺点
2021-08-02 14:54:22 559
cryptography-2.8-cp27-cp27m-manylinux1_x86_64.whl
2020-03-09
MySQL数据库的ODBC驱动安装包(32位和64位Windows系统)
2018-02-10
MySQL数据库驱动程序JAR包(JDBC访问数据库)
2018-02-09
libsvm工具箱
2018-02-09
吴恩达斯坦福公开课机器学习的讲义+课后作业+答案
2017-10-20
sl4a_r6.apk
2017-09-23
Python语言程序设计(梁)Introduction to Programming Using Python.rar
2017-07-20
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人