随笔分类 -  多线程

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