随笔分类 - 读书笔记
同步和异步,阻塞和非阻塞
摘要:可以这么理解。阻塞和非阻塞,应该描述的是一种状态,同步与非同步描述的是行为方式。 1、同步和异步 同步和异步关注的消息通信机制 1、同步:就是在发出一个调用时,在没有得到结果之前,该调用就不返回。但是一旦调用返回,就得到返回值了。 2、异步:调用在发出之后,这个调用就直接返回了,所以没有返回结果。换
阅读全文
java多线程编程核心技术(四)--Lock的使用
摘要:1、jdk1.5中新增了ReentrantLock类,该类也可以实现synchronized线程之间同步互斥的效果。 2、jdk1.5中新增了Condition类。在Lock对象中可以创建多个Condition对象(即synchronized代码块的锁对象)。 3、lock()方法:获取锁 4、un
阅读全文
java多线程编程核心技术(三)--线程间通信
摘要:1、等待/通知机制 1、wait()方法:使当前执行代码的线程进行等待。wait()方法是Object类的方法,该方法将当前线程放入“预执行队列”中,并在wait()所处的代码行处停止执行。只到被唤起或被中断。 在调用wait()之前,线程必须获取该对象的锁,所以该方法只能在同步方法或同步代码块中执
阅读全文
java多线程编程核心技术(二)--对象及变量的并发访问
摘要:1、方法内部的私有变量是线程安全的,实例变量是线程不安全的。 2、A线程先持有object对象的lock锁,B线程可以以异步的方式调用object对象中的非synchronized类型的方法。 3、A线程先持有object对象的lock锁,B线程如果调用object对象中的synchronized类
阅读全文
java多线程编程核心技术(一)--多线程技能
摘要:1、进程和线程的概念 1、进程:进程是操作系统的基础,是一次程序的执行,是一个程序及其数据在处理机上顺序执行时所发生的活动,是程序在一个数据集合上运行的过程,他是系统进行资源分配和调度的一个独立单位。 2、线程:线程可以理解为进程中独立运行的子任务,线程只能归属于一个进程并且它只能访问该进程所拥有的
阅读全文
java虚拟机(三)-- 虚拟机类加载机制
摘要:1、类加载的时机:类从被加载到虚拟机内存中开始,到卸载出内存为止。包含以下几个阶段: 1、加载 2、验证 3、准备 4、解析 5、初始化 6、使用 7、卸载 2、类加载器的种类 1、启动类加载器:这个类加载器负责将存放在java_home\lib目录中,或者是-xbootclasspath参数所指定
阅读全文
java虚拟机(二)--垃圾收集器与内存分配策略
摘要:1、判断对象是否存活的算法: 1.1、引用计数算法:给对象添加一个引用计数器,每当有一个地方引用他时,计数器+1,当引用失效时,计数器-1,任何时刻计数器为0的对象就是不可能再被引用的,但是他很难解决对象之间相互循环引用的问题 1.2、可达性分析算法:该算法在主流的语言中被大量使用,该算法是通过一系
阅读全文
java虚拟机(一)-java内存区域与内存溢出异常
摘要:1、简述:java虚拟机在执行java程序的过程中,会把他所管理的内存分为以下几个区域, 1.1、程序计数器 1.2、虚拟机栈 1.3、本地方法栈 1.4、java堆 1.5、方法区 如图所示: 2、各个区域的主要功能介绍 2.1、程序计数器:它可以看成是当前线程所执行的字节码的行号指示器,在虚拟机
阅读全文