并发编程学习
文章平均质量分 90
过道
不断思考,不断进步,不断分享,希望可以帮助到像我一样迷茫的人,也希望你认真对待每一点知识的积累。
展开
-
并发面试题(01) :volatile和synchronized 相关面试题
1、synchronized 锁的是对象还是代码块?class TestSynchronizedMethod { public synchronized void method01() { // do sth } public void method02() { synchronized(this) { // do sth...原创 2019-10-28 11:12:33 · 482 阅读 · 0 评论 -
Java并发学习 1.Java并发的入门知识
1. Java并发学习的四个阶段 能够熟练掌握API,能够完成并发编程 能够熟读API源码,掌握其原理 能够理解Java虚拟机的内存模型 能够操作系统对并发的支持 2. 为什么要学习并发编程?为了让程序运行得更快。(当然在很多情况下,并发编程会让程序变慢)3. 多线程和并发之间的关系多线程不一定是并发,多线程是完成任务的一种方法,高...原创 2019-04-10 09:36:46 · 234 阅读 · 0 评论 -
Java并发学习 2: 线程入门知识
1. 什么是线程?现在操作系统再运行一个程序时,会为其创建一个进程。进程是资源调度的单位,而现代操作系统CPU调度的最小单元是线程,在一个进程里可以创建多个线程,这些线程都拥有各自的计数器,堆栈和局部变量等属性,并且能够访问共享的内存变量。处理器在线程上高速切换,让使用者感觉到这些线程在同时执行。2. 多线程的好处和坏处?优点:多个线程能够同时执行,这将显著提升程序性能,在多核环境下表...原创 2019-04-10 09:38:48 · 167 阅读 · 0 评论 -
Java并发学习 7: 线程之间的通信
3.1 继承 Thread类// 继承,则Demo1 也成为了一个线程public class Demo1 extends Thread { // 继承Thread类,需要重写run()方法,告诉这个类需要去坐什么. @Override public void run() { // 这个新类,只需要打印出自己的名字(每个线程都有自己的Name属性并提供g...原创 2019-04-10 09:41:21 · 2869 阅读 · 2 评论 -
Java并发学习 3 :volatile的应用
在Java并发编程中,synchronized和volatile 都扮演着重要的角色,volatile是轻量级的synchronzied,其在多处理器开发时保证了共享变量的"可见性".问题引入:多个CPU的不可见性造成脏读我们知道CPU速度非常快,比内存快百倍以上,所以CPU更希望和速度相近的CPU cache打交道。而一个多核的CPU本质上就是多个CPU共用一个外壳,每个核就是一个单...原创 2019-08-01 09:18:08 · 224 阅读 · 0 评论 -
Java并发学习 4 : Synchronized实现原理
Synchronized实现原理Java对象头对象是存放在堆内存之中的,大致可以分为对象图,实例变量,填充字节。其中对象头中有一个叫做MarkWord的区域是用来存储包含锁相关的信息:是否有锁,锁的类型,偏向锁偏向的线程的ID,锁的状态.这是64位虚拟机中的模型(32位主要结构与其相同,位数有所不同)5.2 几种锁的区别 JDK1.6之前,synchronized只有一种锁,就是当...原创 2019-08-01 16:57:10 · 165 阅读 · 0 评论