摘要:
1、sed简介 sed (Stream Editor)是一种在线编辑器,它一次处理一行内容。处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”(patternspace),接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕。接着处理下一行,这样不断重复,直到文件末尾。文... 阅读全文
摘要:
【转】http://my.oschina.net/chihz/blog/58035 文章写的非常好,为作者点赞。JAVA内存模型 对于我们平时开发的业务应用来说,内存应该是访问速度最快的存储设备,对于频繁访问的数据,我们总是习惯把它们放到内存缓存中,有句话不是说么,缓存就像是清凉油,哪里有问题就抹... 阅读全文
摘要:
CGroup 介绍 CGroup 是 Control Groups 的缩写,是 Linux 内核提供的一种可以限制、记录、隔离进程组 (process groups) 所使用的物力资源 (如 cpu memory i/o 等等) 的机制。2007 年进入 Linux 2.6.24 内核,CGrou... 阅读全文
摘要:
【只做搬运工,在搬运的时候窃看其中乐趣。】历史渊源 Linus Torvalds(请记住这个名字)当年(1991)在写Linux的时候,初衷是针对386型机器的,当时只是一套裸露的操作系统并不包含任何的应用程序。未完待续……Linux的可移植性 相比Win的X86架构机器而言,Linux提供了一... 阅读全文
摘要:
CPU种类精简指令集(Reduced Instructions Set Computer - RISC)指令较为精简,每个指令执行周期较短,完成的操作简单,执行性能较佳;Sun公司SPARC系列,IBM的Power Archite系列以及ARM(手机、PDA、导航系统、网络设备等)系列。复杂指令集(... 阅读全文
摘要:
synchronized -- 对象加锁 在字节码中,使用monitorenter/monitorexit 来控制同步的范围。 所有对象都自动含有单一的锁,JVM负责跟踪对象被加锁的次数。【如果一个对象被解锁,其计数变为0。在任务(线程)第一次给对象加锁的时候, 计数变为1。每当这个相同的任务... 阅读全文
摘要:
invokestatic,用于static修饰的方法。任何时候调用的时候只需要类名+方法名即可,无需new。JVM直接将其映射到方法区,执行速度极快。当该方法需要参数的时候,invokestatic会使用命令将参数从栈中弹出,传递给invokestatic。 invokevirtual,用于p... 阅读全文
摘要:
悲观&乐观,只是对数据加锁的时机与粒度。悲观锁(Pessimistic Lock), 顾名思义,就是很悲观,每次去拿数据的时候都认为别人会修改,所以每次在拿数据的时候都会上锁,这样别人想拿这个数据就会block直到它拿到锁。传统的关系型数据库里边就用到了很多这种锁机制,比如行锁,表锁等,读锁,写锁等... 阅读全文
摘要:
【转载 http://ifeve.com/thread-safety/】 允许被多个线程同时执行的代码称作线程安全的代码。线程安全的代码不包含竞态条件。当多个线程同时更新共享资源时会引发竞态条件。因此,了解Java线程执行时共享了什么资源很重要。【局部变量】 局部变量存储在自己的线程栈中。这样的... 阅读全文
摘要:
本文参阅【http://ifeve.com/java-two-phase-termination/】Two-phase Termination模式简介 停止线程是一个目标简单而实现却不那么简单的任务。首先,Java没有提供直接的API用于停止线程。此外,停止线程还有一些额外的细节需要考虑,如停止的线... 阅读全文