本章内容: 1.并发与高并发理解 2.缓存一致性 3.乱序执行优化 4.Java内存模型(JMM) 5. 并发的优势、风险 一、并发与高并发理解 并发:同时拥有两个或者多个线程,如果程序在单核处理器上运行,多个线程将交替地换入换出内存,这些线程时同时存在的,只不过处于执行过程中的不同状态。如果运行在 ...
分类:
其他好文 时间:
2019-12-22 18:21:38
阅读次数:
104
https://blog.csdn.net/qq_37141773/article/details/103138476 一、虚拟机 同样的java代码在不同平台生成的机器码肯定是不一样的,因为不同的操作系统底层的硬件指令集是不同的。 同一个java代码在windows上生成的机器码可能是0101.. ...
分类:
编程语言 时间:
2019-12-22 10:41:52
阅读次数:
77
4292: Count the Trees 时间限制(普通/Java):2000MS/6000MS 内存限制:65536KByte总提交: 15 测试通过:6 描述 A binary tree is a tree data structure in which each node has at mo ...
分类:
其他好文 时间:
2019-12-21 22:51:42
阅读次数:
91
JVM部分数据整理 一、运行时数据区域 Java内存区域主要分为线程私有区域【程序计数器、虚拟机栈、本地方法区】、线程共享区域【Java堆、方法区】、直接内存(不受JVM GC管理) 1、线程私有部分 1.1、程序计数器 程序计数器(Program Counter Register)一块较小的内存空 ...
分类:
其他好文 时间:
2019-12-21 22:46:38
阅读次数:
81
本博客系列是学习并发编程过程中的记录总结。由于文章比较多,写的时间也比较散,所以我整理了个目录贴(传送门),方便查阅。 "并发编程系列博客传送门" 前言 之前的文章中讲到,JMM是内存模型规范在Java语言中的体现。JMM保证了在多核CPU多线程编程环境下,对共享变量读写的原子性、可见性和有序性。 ...
分类:
编程语言 时间:
2019-12-21 15:59:11
阅读次数:
66
本博客系列是学习并发编程过程中的记录总结。由于文章比较多,写的时间也比较散,所以我整理了个目录贴(传送门),方便查阅。 "并发编程系列博客传送门" 前言 在网上看了很多文章,也看了好几本书中关于JMM的介绍,我发现JMM确实是Java中比较难以理解的概念。网上很多文章中关于JMM的介绍要么是照搬了一 ...
分类:
编程语言 时间:
2019-12-20 11:32:50
阅读次数:
109
概述 计算机的运算速度与它的存储和通信子系统速度的差距太大,大量的时间都花费在磁盘I/O、网络通信或者数据库访问上。我们当然不希望处理器大部分时间都处于等待其他资源的状态,要通过一些“手段”去把处理器的运算能力“压榨”出来,不然太浪费了。 衡量一个服务性能的高低好坏,每秒事务处理数(Transact ...
分类:
编程语言 时间:
2019-12-18 21:37:03
阅读次数:
99
本文已经收录自笔者开源的 JavaGuide: "https://github.com/Snailclimb" (【Java学习+面试指南】 一份涵盖大部分Java程序员所需要掌握的核心知识)如果觉得不错的还,不妨去点个Star,鼓励一下! Java 内存区域详解 如果没有特殊说明,都是针对的是 H ...
分类:
编程语言 时间:
2019-12-15 14:15:10
阅读次数:
150
自动内存管理机制 第二章、Java内存区域与内存溢出异常 【虚拟机中内存如何划分,以及哪部分区域、什么样代码和操作会导致内存溢出、各区域内存溢出的原因】 一、运行时数据区域 Java虚拟机所管理的内存包括以下几个运行时数据区域【虚拟机内存模型】: 1.程序计数器: 可以看作是当前线程所执行的字节码的 ...
分类:
编程语言 时间:
2019-12-14 22:40:57
阅读次数:
90