>>JAVASE<<
文章平均质量分 91
多多说happy
这个作者很懒,什么都没留下…
展开
-
Java并发编程之进程
引入操作系统的关键抽象:内存大小有限,操作系统会为每个进程分配独立的虚拟地址空间。虚拟地址空间会映射到物理地址空间。JAVA虚拟机和VMWARE并没有CPU,硬盘等,可以说是一个软的虚拟机。比喻 : 厨师做蛋糕做蛋糕的食谱: 程序做蛋糕的原料:输入数据厨师: CPU厨师阅读食谱,用原料做蛋糕的一系列动作的总和: 进程厨师的儿子跑进了,说是被蜜蜂蛰了厨师记录下当前做到哪一步了(保存当前进程状原创 2017-06-15 10:15:14 · 369 阅读 · 0 评论 -
Java并发编程之线程(一)
概念线程是一种轻量级的进程。线程优点 多个线程拥有共享同一个地址空间和所有可用数据的能力。线程比进程更容易创建和销毁在大量计算和大量 I/O 处理过程中,多个线程能够加快程序执行速度。进程是独立的地址空间:通信比较麻烦。进程之间数据共享没有线程之间方便和高效每个进程至少有一个线程,可以认为那个线程就是主线程。每个线程都要维护自己的一台寄存器与堆栈。那么什么叫维护自己的一套寄存器呢?物理原创 2017-06-16 07:37:19 · 282 阅读 · 0 评论 -
I/O 模型
预备知识1: 用户空间和内核空间虚拟存储器 以32位操作系统为例, 能访问的内存最大为4G 0–3G 虚拟地址分配给各个用户进程(用户空间) 每个进程都有3G的虚拟地址空间3–4G 虚拟地址分配给操作系统核心和驱动程序(内核空间)用户空间和内核空间不能用指针来传递数据() 注意: - Linux 操作系统和驱动程序运行在内核空间,应用程序运行在用户空间,两者不能简单地使用指针传原创 2017-06-14 11:23:41 · 334 阅读 · 0 评论 -
Java并发编程之线程(二)
多线程编程的特点同一份代码,可以有多个线程执行 既可以在一个CPU核上并发执行也可以在多个CPU核上并行执行线程的执行默认是乱序的 程序员不能假定执行次序线程会共享数据(对象的变量) 需要互斥线程之间也需要合作(同步)如何实现互斥 ?锁 ! 只有获得了锁的线程,才能够对共享资源做操作, 换句话说:进入临界区对共享资源做完操作(即使发生异常),一定要释放锁!锁到底是个什么东西原创 2017-06-19 16:20:30 · 337 阅读 · 0 评论 -
Java 并发编程 之 volatile(三)
不允许对 一个volatile变量的赋值操作与其之前的任何读写操作 重新排序,也不允许将 读取一个volatile变量的操作与其之后的任何读写操作 重新排序。原创 2017-10-01 17:36:56 · 223 阅读 · 0 评论 -
Java 并发编程 之 线程池(四)
线程池常见使用场景 Web/数据库/文件/邮件 服务器请求来自远程的客户端请求数量很大, 任务执行时间较短一个请求一个线程创建线程,销毁线程的开销比较大太多的线程导致内存耗尽复用一个资源的技术,前提是请求数量很大, 任务执行时间较短线程池系统预先创建指定数量的线程对多任务重用线程, 线程创建的开销被分摊请求到来时, 线程已经存在, 立刻就可以服务通过限制线程池中的线程数量, 防原创 2017-10-01 23:52:16 · 261 阅读 · 0 评论 -
【JavaSE】Java包装类型的Cache机制
本文将介绍 Java 中 Integer 缓存(IntegerCache)的相关知识。这是 Java 5 中引入的一个有助于节省内存、提高性能的特性。首先看一个使用 Integer 的示例代码,展示了 Integer 的缓存行为。接着我们将学习这种实现的原因和目的。原创 2018-05-06 10:38:07 · 1070 阅读 · 1 评论