标签:重排序

Java

Java 面试官最喜欢问的关键字 volatile

3

xubiao.zhuang 发布于 2019-03-19

笔者去年面试过几家公司,基本上每家公司都会问到volatile,甚至有的公司每轮面试的时候都会问到。面试官这么喜欢问volatile就是因为这个关键字涉及到的知识点较多比如Java内存模型、内存屏障、happen-befor等知识,可以继续挖掘到系统指令、超线程等知识。 Java...

阅读(9)评论(0)赞 (0)

Java

Java volatile关键字解析

4

xubiao.zhuang 发布于 2019-03-19

volatile 被称为 轻量级的synchronized ,运行时开销比 synchronized 更小,在多线程并发编程中发挥着 同步共享变量 、 禁止处理器重排序 的重要作用。建议在学习 volatie 之前,先看一下Java内存模型 《什么是Java内存模型?》 ,因为 ...

阅读(7)评论(0)赞 (0)

Java

Java volatile关键字解析

4

dulong 发布于 2019-03-19

volatile 被称为 轻量级的synchronized ,运行时开销比 synchronized 更小,在多线程并发编程中发挥着 同步共享变量 、 禁止处理器重排序 的重要作用。建议在学习 volatie 之前,先看一下Java内存模型 《什么是Java内存模型?》 ,因为 ...

阅读(7)评论(0)赞 (0)

Java

【J2SE】java并发编程实战 读书笔记( 一、二、三章)

zhuangli 发布于 2019-03-19

线程的优缺点 线程是系统调度的基本单位。 线程如果使用得当,可以有效地降低程序的开发和维护等成本,同时提升复杂应用程序的性能。多线程程序可以通过提高处理器资源的利用率来提升系统的吞吐率。与此同时,在线程的使用开发过程中,也存在着诸多需要考虑的风险。 ++i 线程安全性 线程安全的...

阅读(10)评论(0)赞 (0)

Java

【J2SE】java并发基础

2

小丁 发布于 2019-03-19

并发简述 并发通常是用于提高运行在 单处理器 上的程序的性能。在单 CPU 机器上使用多任务的程序在任意时刻只在执行一项工作。 并发编程使得一个程序可以被划分为多个分离的、独立的任务。一个线程就是在进程中的一个单一的顺序控制流。 java的线程机制是抢占式。 线程的好处是提供了轻...

阅读(9)评论(0)赞 (0)

Java

CAS原理深度解析

2

xubiao.zhuang 发布于 2019-03-15

CAS:Compare and Swap, 翻译成比较并交换。 java.util.concurrent 包中借助CAS实现了区别于 synchronouse 同步锁的一种乐观锁。 本文先从CAS的应用说起,再深入原理解析。 2. CAS应用 CAS有3个操作数,内存值V,旧的预...

阅读(13)评论(0)赞 (0)

Java

什么是Java内存模型?

6

darida 发布于 2019-03-12

要想深入了解Java并发编程,就要先理解好 Java内存模型 ,而要理解Java内存模型又不得不从硬件、计算机内存模型说起,本文从计算机内存模型产生的原因、解决的问题谈起,然后再对Java模型进行介绍,最后对计算机内存模型和Java内存模型进行总结,希望大家看完本文之后有所收获!...

阅读(28)评论(0)赞 (0)

编程技术

『互联网架构』软件架构-分布式系列并发编程Lock锁和Tools限制(30)

2

songhua.gao 发布于 2019-03-11

虽然多线程编程极大地提高了效率,但是也会带来一定的隐患。比如说两个线程同时往一个数据库表中插入不重复的数据,就可能会导致数据库中插入了相同的数据。今天我们就来一起讨论下线程安全问题,以及Java中提供了什么机制来解决线程安全问题。源码:https://github.com/lim...

阅读(24)评论(0)赞 (0)

编程技术

『互联网架构』软件架构-分布式系列并发编程(29)

9

yanxinchi 发布于 2019-03-09

说说JMM,线程,线程池。一切都为了分布式而行动! JMM 理解下面的图 java的文件,需要进行编译,通过java编译编程class文件,class文件变成字节码,装载到类装载器中,通过类装载器进行执行,执行的过程中的一个模型就是下面这个图。 特性 1.可见性 >可见性是...

阅读(47)评论(0)赞 (0)

Spring

集成源码深度剖析:Fescar x Spring Cloud

2

likai 发布于 2019-03-08

Fescar 简介 常见的分布式事务方式有基于 2PC 的 XA (e.g. atomikos),从业务层入手的 TCC( e.g. byteTCC)、事务消息 ( e.g. RocketMQ Half Message) 等等。XA 是需要本地数据库支持的分布式事务的协议,资源锁...

阅读(46)评论(0)赞 (0)

Java

Java并发之原子性、有序性、可见性

5

xirruiqiang 发布于 2019-03-07

​ 原子性指的是一个或者多个操作在 CPU 执行的过程中不被中断的特性 线程切换 带来的原子性问题 Java 并发程序都是基于多线程的,操作系统为了充分利用CPU的资源,将CPU分成若干个时间片,在多线程环境下,线程会被操作系统调度进行任务切换。 为了直观的了解什么是原子性,我们...

阅读(44)评论(0)赞 (0)

Java

拼多多、饿了么、蚂蚁金服Java面试题大集合

3

yeseng 发布于 2019-03-06

自己当初找工作时参加过众多一线互联网公司的Java研发面试,这段时间处于寒冬,然而前几天跳槽找工作,两天面了3家,已经拿了两个offer,觉得可以和大家分享下: 下面为拼多多、饿了么、蚂蚁金服、哈啰出行等公司给我留下较深印象的一些java面试题 private修饰的方法可以通过反...

阅读(43)评论(0)赞 (0)

Java

阿里P7分享最新java面试——线程面试题集合

1

dulong 发布于 2019-03-06

1、说说进程,线程,协程之间的区别 简而言之,进程是程序运行和资源分配的基本单位,一个程序至少有一个进程,一个进程至少有一个线程.进程在执行过程中拥有独立的内存单元,而多个线程共享内存资源,减少切换次数,从而效率更高.线程是进程的一个实体,是cpu调度和分派的基本单位,是比程序更...

阅读(48)评论(0)赞 (0)

Java

大数据成神之路-Java高级特性增强(volatile关键字)

2

hanze 发布于 2019-02-28

请戳GitHub原文: https://github.com/wangzhiwub… 大数据成神之路系列: 请戳GitHub原文: https://github.com/wangzhiwub… Java高级特性增强-集合 Java高级特性增强-多线程 Ja...

阅读(49)评论(0)赞 (0)

Java

95%的技术面试必考的JVM知识点都在这,另附加分思路!

dulong 发布于 2019-02-26

概述:知识点汇总 jvm的知识点汇总共6个大方向:内存模型、类加载机制、GC垃圾回收是比较重点的内容。性能调优部分偏重实际应用,重点突出实践能力。编译器优化和执行模式部分偏重理论基础,主要掌握知识点。 各个部分的内容如下: 1>内存模型部分:程序计数器、方法区、堆、栈、本地方法栈...

阅读(47)评论(0)赞 (0)

Java

多线程安全性和Java中的锁

2

xirruiqiang 发布于 2019-02-26

Java是天生的并发语言。多线程在带来更高效率的同时,又带来了数据安全性问题。一般我们将多线程的数据安全性问题分为三种:原子性、可见性和有序性。原子性是指我们的一系列操作要么全部都做,要么全部不做。可见性是指当一个线程修改了一个共享变量后,这个修改能够及时地被另一个线程看到。有序...

阅读(65)评论(0)赞 (0)

Java

Java中的Unsafe

1

xubiao.zhuang 发布于 2019-02-26

Java和C++语言的一个重要区别就是Java中我们无法直接操作一块内存区域,不能像C++中那样可以自己申请内存和释放内存。Java中的Unsafe类为我们提供了类似C++手动管理内存的能力。 Unsafe类,全限定名是 sun.misc.Unsafe ,从名字中我们可以看出来这...

阅读(39)评论(0)赞 (0)

Java

【缺陷周话】第23期:双重检查锁定

5

songhua.gao 发布于 2019-02-26

在程序开发中,有时需要推迟一些高开销的对象初始化操作,并且只有在使用这些对象时才进行初始化,此时可以采用双重检查锁定来延迟对象初始化操作。双重检查锁定是设计用来减少并发系统中竞争和同步开销的一种软件设计模式,在普通单例模式的基础上,先判断对象是否已经被初始化,再决定要不要加锁。尽...

阅读(42)评论(0)赞 (0)