11 2020 档案
摘要:BIO实现一个服务器 为了更好的演示BIO与NIO之间的区别,我们先用一个服务器示例来了解一个BIO实现网络通行的过程。 单线程下的BIO服务器 服务端 public class BioServer { public static void main(String[] args) throws IO
阅读全文
摘要:前言 Synchronized 是常被我们用来保证临界区以及临界资源安全的解决方案。它可以保证当有多个线程访问同一段代码,操作共享数据时,其他线程必须等待正在操作线程完成数据处理后再进行访问。即 Synchronized 可以达到线程互斥访问的目的。 所以,我们可以了解到,Synchronized锁
阅读全文
摘要:
在数据挖掘中,聚类是一个很重要的概念。传统的聚类分析计算方法主要有如下几种:划分方法、层次方法、基于密度的方法、基于网格的方法、基于模型的方法等。其中K-Means算法是划分方法中的一个经典的算法。
阅读全文

摘要:
我们可以简单将锁分为两种——内存级锁以及分布式锁,内存级锁即我们在 Java 中的 synchronized 关键字(或许加上进程级锁修饰更恰当些),而分布式锁则是应用在分布式系统中的一种锁机制。
阅读全文

摘要:
所谓负载均衡就是将外部发送过来的请求均匀或者根据某种算法分配到对称结构中的某一台服务器中。负载均衡可以分为硬件负载均衡和软件负载均衡,常见的硬件负载均衡有F5、Array等,但是这些设备都比较昂贵。相比之下,利用软件来实现负载均衡就比较简单了,常见的像是 Nginx 的反向代理负载均衡。
阅读全文

摘要:
锁是计算机用以协调多个进程间并发访问同一共享资源的一种机制。MySQL中为了保证数据访问的一致性与有效性等功能,实现了锁机制,MySQL中的锁是在服务器层或者存储引擎层实现的。
阅读全文

摘要:
对于 final 域,编译器和处理器要遵守两个重排序规则。
1)在构造函数内对一个 final 域的写入,与随后把这个被构造对象的引用赋值给一个引用变量,这两个操作之间不能重排序;
2)初次读一个包含 final 域的对象的引用,与随后初次读这个 final 域,这两个操作之间不能重排序。
阅读全文

摘要:对于很多刚接触编程的人来说,对于线程中断和线程阻塞两个概念,经常性是混淆起来用,单纯地认为线程中断与线程阻塞的概念是一致的,都是值线程运行状态的停止。其实这个观点是错误的,两者之前有很大的区别,下文就着重介绍两者之间的区别。 线程中断 在一个线程正常结束之前,如果被强制终止,那么就有可能造成一些比较
阅读全文
摘要:
MySQL官方对索引的定义为:索引(index)是帮助MySQL高效获取数据的数据结构(有序)。在数据之外,数据库系统还维护着满足特定查找算法的数据结构,这些数据结构以某种方式引用(指向)数据,这样就可以在这些数据结构上实现高级查找算法,这种数据结构就是索引。
阅读全文

摘要:
本文主要会从 Lock 接口到 AQS 抽象类的 API 以及源码分析 Java 中锁的实现,通过演示相关组件的代码 Demo 了解其使用,以及了解如何通过 AQS 实现一个锁。
阅读全文

摘要:
Redis的数据是全部存储在内存中的,如果机器宕机,那么数据就会丢失,因此需要有持久化机制来保证数据不会因为宕机而丢失。Redis 为我们提供了两种持久化方案,一种是基于快照,另外一种是基于 AOF 日志 ......
阅读全文
