julyerr Blog

Do one thing , do it well

《java并发编程》任务取消

《java并发编程》任务取消

一个行为良好的软件能够完善的处理失败、关闭和取消等过程,java没有提供任何机制安全终止线程,但是提供了中断这种协作机制。 取消与关闭 设置标志位 比较容易想到的是通过设置标志位的方式取消任务 public class PrimeGenerator implements Runnable { private final List<BigInteger> pr...

《java并发编程》任务执行

《java并发编程》任务执行

构建一个高并发的应用通常从任务启动、执行、关闭、取消等方面进行考虑,由于篇幅的原因,本文就任务的启动和执行进行总结,在下篇文章中会对任务的取消和关闭进行总结。 任务执行 串行创建任务 public class SingleThreadWebServer { public static void main(String[] args) throws IOException...

《java并发编程》并发模块

《java并发编程》并发模块

java平台类库包含了丰富的并发基础构建模块,可以使用这些基础模块构建并发应用程序。 同步容器类 同步容器虽然对容器内部元素操作使用同步机制,但是对常见的复合操作:迭代,跳转(根据指定顺序找到当前元素的下一个元素)以及条件运算需要额外进行同步操作 public static Object getLast(Vector list){ int lastIndex = list...

《java并发编程实战》线程安全性以及对象发布

《java并发编程》线程安全性以及对象发布

这一阵子重读了《java并发编程实战》这本书,感觉收获还是挺大的,打算通过博客的形式将内容梳理成系列的读书笔记。一方面更加清楚的理清文章脉络,一方面也希望给大家在并发编程方面有点帮助。 java方面有很多值得啃的书,下面是《java并发编程实战》的目录 本文就java并发编程中一些基本概念和发布安全对象等内容进行总结。 使用多线程需要考虑的问题 线程优势 充分发挥...

多路复用io及golang 网络模型分析

多路复用io及golang 网络模型分析

开始本文之前可以先看看linux中五种io模型 多路复用io I/O多路复用就是通过一种机制,一个进程可以监视多个描述符,一旦某个描述符就绪(一般是读就绪或者写就绪),能够通知程序进行相应的读写操作。与多进程和多线程技术相比,I/O多路复用技术的最大优势是系统开销小,系统不必创建进程/线程,也不必维护这些进程/线程,从而大大减小了系统的开销。 select、poll、epoll等都能提...

goroutine 和 channel 简析

goroutine 和 channel 简析

并发背后的系统知识 系统调用 系统调用是操作系统将内存管理、文件管理、进程管理、外设管理等内部模块功能提供给应用程序调用的一种方式。 语言运行库 语言运行库对系统调用封装了参数准备和返回值格式转换、以及出错处理和错误代码转换等工作,例如c语言上对应的cglibc,java的JRE,这些“其他语言”的运行库通常最终还是调用glibc或kernel32。但任何一门语言,包括其运行库和运行环境...

k8s的网络简析

k8s的网络简析

在本篇文章之前,可以先看看docker中的网络模型. Pod IP k8s中Pod的IP是最小粒度IP,同一个Pod内所有的容器共享一个网络堆栈,该模型称为IP-per-Pod模型。 k8s使用了docker中的bridge模式,新建一个Pod的时候,会预先创建一个网络容器,它不做任何事情,只是用来接管Pod的网络,业务容器通过加入网络容器的网络从而实现网络共享。 docker bri...

常见虚拟网卡设备及CNI简介

常见虚拟网卡设备及CNI简介

linux中常见(虚拟)网络设备 网络虚拟化有多种实现方式,可以依靠虚拟机实现,也可以在同一台主机上分离出多个TCP/IP协议栈实现;现在流行的容器技术,独立的网络虚拟化同时还利用了linux提供的net namespace技术。 loopback 本地回环设备,主要是同一主机上应用进行通信,不需要经过外网。 TUN 普通的网卡通过网线收发数据...

k8s 简介和框架介绍

k8s 简介和框架介绍

k8s事实上已经成为容器调度管理的行业标准,本文对k8s(kurbenetes)做一个overview。 k8s架构 分布式环境,整体的架构有很多类似之处,一个master对应多个slave,只是各个架构的名称有所不同 k8s中主要概念 Pod Pod是在K8s集群中运行部署应用或服务的最小单元,可以支持多容器的; P...

java String和常量池

java String和常量池

String是java中较为常用的类,其简单使用之处还有部分高级特性值得我们关注。 String基础深入 String的final特性 String被final关键字修饰,意味着string对象不能被继承和修改,值在初始化的时候就已经确定 String初始化 // 字面量初始化 String a = new String("abc"); // 构造方法 String a = n...