09 2017 档案

 
Java并发基础
摘要:现代操作系统在运行一个程序时,会为其创建一个进程。现代操作系统调度的最小单元是线程,也叫轻量级进程(Light Weight Process)。在一个进程里可以创建多个线程,这些线程都拥有各自的程序计数器,堆栈和局部变量等属性,并能够访问共享的内存变量。 使用多线程原因: 1. 更多的处理器核心 线 阅读全文
posted @ 2017-09-27 16:59 forever_elf 阅读(259) 评论(0) 推荐(0)
Java内存模型
摘要:在命令式编程中,线程之间通信机制有两种:共享内存和消息传递。 在共享内存的并发模型里,线程之间共享程序的公共状态,通过写-读内存中的公共状态进行隐式通信。在消息传递的并发模型里,线程之间没有公共状态,线程之间必须通过发送消息来显式进行通信。 同步是指程序中用于控制不同线程间操作发生相对顺序的机制。在 阅读全文
posted @ 2017-09-22 09:49 forever_elf 阅读(163) 评论(0) 推荐(0)
Java并发机制和底层实现原理
摘要:Java代码在编译后会变成Java字节码,字节码被类加载器加载到JVM里,JVM执行字节码转化为汇编指令在CPU上执行。Java中的并发机制依赖于JVM的实现和CPU的指令。 Java语言规范第三版中对volatile的定义如下:Java编程语言允许线程访问共享变量,为了确保共享变量能被准确和一致的 阅读全文
posted @ 2017-09-19 18:44 forever_elf 阅读(375) 评论(0) 推荐(0)
影响并发的因素
摘要:即使是单核处理器也支持多线程执行代码,CPU通过给每个线程分配CPU时间片来实现这个机制。时间片是CPU分配给各个线程的时间,因为时间片很短,所有CPU通过不停地切换线程执行,让我们感觉像多个线程同时执行,时间片一般是几十毫秒。CPU通过时间片分配算法来循环执行任务,当前任务执行一个时间片后会切换到 阅读全文
posted @ 2017-09-13 16:00 forever_elf 阅读(550) 评论(0) 推荐(0)
Docker
摘要:Docker使用Go语言进行开发,基于Linux内核的cgroup,namespace以及AOT的类的Union FS等技术。对进程进行封装隔离,属于操作系统层面的虚拟化技术,由于隔离的进程独立于宿主和其他的隔离,因此也称其为容器。 Docker有三个基本概念:镜像(Image),容器(Contai 阅读全文
posted @ 2017-09-05 17:03 forever_elf 阅读(205) 评论(0) 推荐(0)