随笔分类 - 多线程
摘要:本章将介绍了java并发包中与锁相关的API和组件,以及这些API和组件的使用方法和实现细节。内容主要围绕两个方面:使用,通过示例演示这些组件的使用方法以及详细介绍与所相关的API;实现,通过分析源码来剖析实现细节,因为理解实现的细节方能更加得心应手且正确的使用这些组件。希望通过以上两个方面的讲解使
阅读全文
摘要:java从诞生开始就明智的选择了内置对多线程的支持,这使得java语言相比同一时期的其他语言具有明显的优势。线程作为操作系统调度的最小单元,多个线程能够同时执行,这将显著提升程序的性能,在多核环境中表现的更加明显。但是,过多的创建线程和对线程的不当管理也容易造成问题。本章将着重介绍java并发编程的
阅读全文
摘要:3.1 java内存模型的基础 3.1.1并发编程模型的两个关键问题 在并发编程中,需要处理两个关键问题:线程之间如何通信及线程之间如何同步(这里的线程是指并发执行的活动实体)。通信是指两个线程 之间以何种机制来交换信息。在命令式编程中,线程之间的通信机制有两种:共享内存和消息传递。 在共享内存的并
阅读全文
摘要:java代码在编译后都会编程java字节码,字节码被类加载器加载到jvm里,jvm执行字节码,最终需要转化为汇编指令在CPU上执行,java中所使用的并发机制依赖于jvm的实现和CPU的指令。 2.1 volatile的应用 在多线程并发编程中synchronized和volatile都扮演着重要角
阅读全文
摘要:1.1上下文切换 单核处理器也支持多线程执行代码,CPU通过给每个线程分配CPU时间片来实现这个机制。时间片是CPU分配给各个线程的时间,因为时间片非常短,所以CPU通过不停的切换线程执行。 CPU通过时间片分配算法来循环执行任务,当前任务执行一个时间片后会切换到下一个任务。但是在切换之前会保存上一
阅读全文
摘要:1.Synchronized的原理 https://www.cnblogs.com/zaizhoumo/p/7700161.html Java的每一个对象都可以作为锁,当一个线程访问时,首先要获取锁对象,退出代码块或抛出异常时才会释放锁。 常见的三种用法: 普通方法, 静态方法 同步代码块 普通方法
阅读全文

浙公网安备 33010602011771号