自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(11)
  • 收藏
  • 关注

原创 Median of Two Sorted Arrays

这是leetcode上的一道题目。求这两个以排序数组的中位数。分析:第一步:先根据2个数组加起来的总长度是奇数还是偶数来判断最终的中位数是一个数还是2个数相加取平均值。第二步:设置2个指针,分别指向这两个数组的起始位置。然后不断进行比较这两个指针指向的值以更新这两个指针(下面程序已经有说明)。需要注意的是当指针指到数组末尾时该如何操作。注:另外返回的时double型的结果。返回的结果要 ...

2018-10-25 16:27:59 112

原创 Code 排列小球(Ways to arrange Balls such that adjacent balls are of different types)

举例:input: 2 1 1output: 6使用递归的方法来求解:public class Main { // Returns count of arrangements // where last placed ball is // 'last'. 'last' is 0 for 'p', // 1 for 'q' and 2 for 'r' stati...

2018-10-24 12:13:56 520 1

原创 synchronized锁住了谁

先来看一段代码public class MultiThread { private static int num = 0; /** static */ public synchronized void printNum(String tag){ try { if(tag.equals("a")){ num = 200; System.out.pri...

2018-10-24 10:18:30 280

原创 数据库锁

无论何时,只要有多个查询需要在同一时刻修改数据,都会产生并发控制问题。下面讨论MySQL在2个层面上的并发控制:服务器层和存储引擎层。在处理并发读或写的时候,可以通过实现一个由两种类型的锁组成的锁系统来解决问题:共享锁和排他锁(读锁和写锁)。一种提高共享资源并发性的方式是让锁定的对象更有选择性,尽量只锁定需要修改的部分,而不是所有的资源。下面介绍MySQL的两种最重要的锁策略:表锁:开销...

2018-10-23 23:01:07 98

原创 操作系统的基本概念

操作系统通过引入进程和线程,使得程序可以并发运行。几种进程或线程同步互斥的控制方法:临界区:通过多线程的串行化来访问公共资源或一段代码,速度快,适合控制数据访问。互斥共享的资源称为临界资源(每次仅仅允许一个进程访问的资源)。每个进程中访问临界资源的那段代码成为临界区。互斥量(Mutex) :互斥量跟临界区很相似,只有拥有互斥对象的线程才具有访问资源的权限。不同的是——使用互斥不仅仅能够...

2018-10-23 20:47:03 1547

原创 分布式一致性

分布式系统不可能同时满足一致性,可用性和分区容忍性,最多只能同时满足其中的二项。其中,网络分区指的是分布式系统中的节点被划分为多个区域,每个区域内部可以通信,但是区域之间无法通信。在分区容忍性条件下,分布式系统在遇到任何网络分区故障时,仍然需要对外提供一致性和可用性服务,除非整个网络环境发生了故障。另外,可用性和一致性往往是冲突的。为了保证一致性,需要让所有的节点下线成为不可用状态,等待同...

2018-10-23 16:26:35 338

原创 TCP协议的Time_Wait

首先,TIME_WAIT并不是多余的。在TCP协议被创造,经历了大量的实际场景实践之后,TIME_WAIT出现了,因为TCP主动关闭连接的一方需要TIMEWAIT状态,它是我们的朋友。为什么需要TIme_WaitTCP协议要保证在所有可能的情况下使得所有的数据都能够被正确送达。当你关闭一个socket时,主动关闭一端的socket将进入TIME_WAIT状态,而被动关闭一方则转入CLOSED状...

2018-10-20 11:24:10 379

原创 强一致性算法

分布式系统对fault tolorence的一般解决方案是state machine replication主从同步复制Master接受写请求Master复制日志到SlaveMaster等待,直到所有从库返回问题:一个节点失败,Master阻塞,导致整个集群不可用,保证了一致性,可用性大大降低。多数派每次写入保证写入大于N/2个节点 每次读保证从大于N/2个节点读问题:在并发环...

2018-10-15 15:28:06 1500

原创 索引背后的原理

MySQL的官方定义:索引是帮助MySQL高效获取数据的数据结构。查询时数据库最主要的功能,我们都希望查询数据的速度可以尽可能地快。在数据之外,数据库系统还维护着满足特定查找算法地数据结构,这些数据结构以某种方式引用数据,这样就可以在这些数据结构上实现高级查找算法。这种数据结构,就是索引。一般来说,索引本身也很大,不可能全部存储在内存中,因此索引往往以索引文件的形式存储的磁盘上。这样的话,索引...

2018-10-11 22:21:07 202

原创 Hash索引

Hash索引的检索效率很高,可以一次定位。其查询效率远远高于B+树索引。但是,Hash索引还有很多弊端。Hash索引仅仅支持"=",“IN"和”<=>"查询,不支持范围查询。经过响应的Hash算法处理之后的Hash值的大小关系,不能保证和Hash运算前完全一致。Hash索引不能利用部分索引键查询。对于组合索引,Hash索引在计算Hash值的时候是组合索引键何合并之后再一起计算...

2018-10-11 15:58:55 218

原创 垃圾回收机制

垃圾回收机制将垃圾回收机制,我想先从JVM的运行时数据区开始讲起。JVM的运行时数据区程序计数器可以看作是当前程序所执行的字节码的行号指示器。java虚拟机的多线程是通过线程轮流切换并分配处理器执行时间的方式来实现的。在任何一个确定的时刻,一个处理器(对于多核处理器来说是一个内核)都只会执行一条线程中的命令。因此,为了线程切换之后能够恢复到正确的执行位置,每个线程需要一个独立的程序计数器。...

2018-10-09 22:21:43 115

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除