摘要:
这篇是入职之后的第二篇了,上一篇我简单介绍了一下LOCK里面的类的方法,感兴趣的话可以去了解一下,以后坚持每周至少会更新一篇关于多线程方面的文章,希望博友们可以一起加油成长。 这篇主要的内容是单例模式在多线程环境下的设计,这篇算是比较重要的内容,我会进行文字和代码的共同说明来讲解记录 1、立即加载( 阅读全文
摘要:
作者: 战斗民族就是干 转载请注明出处:https://www.cnblogs.com/prayers/p/5515245.html 一、运行时数据区域 线程隔离:线程隔离的意思,就是给不同的线程多分配的资源用,以做到不争用 线程共享:线程共享就是资源只有一个没有办法分配更多,只能共享 Java虚拟 阅读全文
摘要:
hbase存储:HBase存储数据其底层使用的是HDFS来作为存储介质,HBase的每一张表对应的HDFS目录上的一个文件夹,文件夹名以HBase表进行命名(如果没有使用命名空间,则默认在default目录下),在表文件夹下存放在若干个Region命名的文件夹,Region文件夹中的每个列簇也是用文 阅读全文
摘要:
B/S架构 最常见的架构方式。 优点: 1.客户端使用统一(此处的统一主要指实现原理统一)的浏览器,不需要特殊的网络配置。 2.服务端基于统一的HTTP协议。基于此协议的服务器有很多,如Tomcat,Nginx,JBoss。这些服务器可以直接拿来用。 请求发生的完整过程 HTTP最大的特点就是无状态 阅读全文
摘要:
事务并发带来的一些问题 (1)更新丢失(LostUpdate):当两个或多个事务选择同一行,然后基于最初选定的值更新该行时,由于每个事务都不知道其他事务的存在,就会发生丢失更新问题最后的更新覆盖了由其他事务所做的更新 (2)脏读(Dirty Reads):一个事务正在对一条记录做修改,在这个事务完成 阅读全文
摘要:
1、搜索的索引列:最适合索引的列是出现在where子句中的列,或链接子句中指定的列,而不是出现在select关键词后的选择列表中的列 2、使用唯一索引:考虑列中值的分布。索引的列基础越大,索引的效果越好。列如记录性别的列,不管搜索那个性别,都会得出大约一般的行,因此对此列索引没有太大的作用 3、使用 阅读全文
摘要:
作者:战斗民族就是干 转载请注明地址:http://www.cnblogs.com/prayers/p/8986498.html 普通分页 当需要深度分页的时候,比如查询第10000页数据,每页显示10条,意味着需要提取前10000 x 10 页的数据,并将这100000条数据缓存在内存中,然后在内 阅读全文
摘要:
作者:战斗民族就是干 转载请注明地址:http://www.cnblogs.com/prayers/p/8822417.html Facet 开门见山,facet解决的就是筛选,我是把它理解为一种聚合。 例如,商品属性中的品牌名称。例如:搜索召回了100个sku,这100个sku里面包含在20个品牌 阅读全文
摘要:
作者:战斗民族就是干 转载请注明地址:http://www.cnblogs.com/prayers/p/8982141.html 本篇文章我们来了解一下solr的性能方面的调优,分为Schema优化、索引更新与提交调优、索引合并性能调优、Solr缓存、Solr查询性能优化 Schema优化 1、in 阅读全文
摘要:
volatile变量自身具有下列两点特性: 可见性:锁的happens-before规则保证释放锁和获取锁的两个线程之间的内存可见性。意味着对一个volatile变量的读,总是能看到(任意线程)对这个volatile变量最后的写入。 原子性:对任意单个volatile变量的读/写具有原子性,但类似于 阅读全文
摘要:
数据竞争: 当程序未正确同步时,就会存在数据竞争。java内存模型规范对数据竞争的定义如下: 在一个线程中写一个变量 在另一个线程读同一个变量 而且写和读没有通过同步来排序 如果程序是正确同步的,程序的执行将具有顺序一致性–即程序的执行结果与该程序在顺序一致性内存模型中的执行结果相同 顺序一致性内存 阅读全文
摘要:
重排序:是指编译器和处理器为了优化程序性能而对指令序列进行重新排序的一种手段 1.、编译器优化的重排序。编译器在不改变单线程程序语义的前提下,可以重新安排语句的执行顺序。 2.、指令级并行的重排序。现代处理器采用了指令级并行技术来将多条指令重叠执行。如果不存在数据依赖性,处理器可以改变语句对应机器指 阅读全文