标签:并发编程

Java

懒加载的艺术

zhuangli 发布于 2018-12-09

懒加载是一种加载方式,加载对象一般有两种方式,一是在启动时就立即创建好,另一种则是在需要用到的时候再去加载即懒加载。懒加载一般会针对单例场景,且一般是针对在加载消耗较大费时,且不一定会用到的场景。 好了,相信啥意思大家都明白!那么具体如何实现呢?其实挺有意思的! 方案1. 直接用...

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

Java

Dubbo 即将毕业,晋升为 Apache 顶级项目?

9

Harries 发布于 2018-12-07

2018年2月9日,Apache 基金会的邮件列表上发起了讨论是否接纳阿里的 Dubbo 项目进入 Apache 孵化器的投票。 2018年2月15日,邮件列表显示,Dubbo 获得了 14 张赞成票,在无弃权和反对票的情况下,正式通过投票,顺利成为 Apache 基金...

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

Java

java内存模型–JMM

3

songhua.gao 发布于 2018-12-07

编辑推荐: 本文来自于cnblogs,本文介绍了Java运行时数据时的内存区域以及主内存和工作内存等相关内容。 在并发编程中,多个线程之间采取什么机制进行通信(信息交换),什么机制进行数据的同步? 在Java语言中,采用的是共享内存模型来实现多线程之间的信息交换和数据同步的。 线...

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

Java

ReentrantLock源码解读

hellas 发布于 2018-12-05

写这篇文章之前,还是先安利一本书:《java并发编程的艺术》。这本书对锁的实现的很多细节都解释的还是很清楚的,加上自己配合源码进行理解,读懂ReentrantLock这个类的实现应该不是那么困难。本文只对 独占模式 进行分析。 一行行分析ReentrantLock源码 直接步入正...

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

Java

大白话聊聊Java并发面试问题之Java 8如何优化CAS性能?【石杉的架构笔记】

6

尖兵 发布于 2018-12-05

一、前情回顾 上篇文章给大家聊了一下volatile的原理,具体参见: 大白话聊聊Java并发面试问题之volatile到底是什么? 。 这篇文章给大家聊一下java并发包下的CAS相关的原子操作,以及Java 8如何改进和优化CAS操作的性能。 因为Atomic系列的原子类,无...

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

Java

五年 Java 经验如何拿下阿里 P6?

10

zhuangli 发布于 2018-12-04

前言: 五年开发经验的我,就在今年十月份间,前前后后面试了几家大厂,最后成功收到阿里P6 offer。在面试期间,同样也收到其他公司的offer(京东、58集团、等、因为阿里离家近,所以其他的offer都拒绝了) 阿里面试总结 第一轮:电话初面 第二轮:技术面谈【技术职位尽量避免...

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

Java

大白话聊聊Java并发面试问题之volatile到底是什么?【石杉的架构笔记】

6

zhuangli 发布于 2018-12-04

欢迎关注个人公众号:石杉的架构笔记(ID:shishan100) 周一至周五早8点半!精品技术文章准时送上! 一、写在前面 前段时间把几年前带过的一个项目架构演进的过程整理了一个系列出来,参见( 亿级流量架构系列专栏总结 )。 不过很多同学看了之后,后台反馈说文章太烧脑,看的云里...

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

Java

ReentrantReadWriteLock 读写锁解析

1

hanze 发布于 2018-12-03

java中锁是个很重要的概念,当然这里的前提是你会涉及并发编程。 除了语言提供的锁关键字 synchronized和volatile之外,jdk还有其他多种实用的锁。 不过这些锁大多都是基于AQS队列同步器。ReadWriteLock 读写锁就是其中一个。 读写锁的含义是,将读锁...

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

Java

死磕java concurrent包系列(一)从乐观锁、悲观锁到AtomicInteger的CAS算法

3

yanxinchi 发布于 2018-12-02

前言 Java中有各式各样的锁,主流的锁和概念如下: 这篇文章主要是为了让大家通过乐观锁和悲观锁出发,理解CAS算法,因为CAS是整个Concurrent包的基础。 乐观锁和悲观锁 首先,java和数据库中都有这种概念,他是一种从线程同步的角度上看的一种广义上的概念: 悲观锁:悲...

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

Java

java nio

2

邓龙华 发布于 2018-12-02

allocate(int capacity) : 分配指定大小的缓冲区(非直接缓冲区) allocateDirect(int capacity) : 分配指定大小的缓冲区(直接缓冲区) put() :向缓冲区中存储数据 get(byte[] dst) :从缓冲区获取数据,这里的d...

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

Java

搞点事情!死磕Java并发编程。

2

邓龙华 发布于 2018-12-01

对于程序员来说,编写不出错的代码是很难的,比这更难的是编写不出错的多线程相关代码。相比较于顺序执行的代码,并发执行的代码更加容易出错。而且在多线程场景中,出现了问题更加不容易排查。 造成这种种困难的原因就是开发者其实对并发编程有关的知识了解的并不够深入。并发编程,一直是一个比较晦...

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

Java

Android并发编程 多线程与锁

1

xiaoli.he 发布于 2018-11-30

该文章是一个系列文章,是本人在Android开发的漫漫长途上的一点感想和记录,如果能给各位看官带来一丝启发或者帮助,那真是极好的。 前言 前一篇Android并发编程开篇呢,主要是简单介绍一下线程以及JMM,虽然文章不长,但却是理解后续文章的基础。本篇文章介绍多线程与锁。 深入认...

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

Java

阿里资深架构师谈:Java程序员怎么做才能有最高最好的学习效率!

9

darida 发布于 2018-11-28

工作了挺久,发现有个挺有意思的现象,从程序员、高级程序员,到现在挂着架构师、专家之类的头衔,伴随着技术和能力的提高,想不明白的事情反而越来越多了。这些疑问有些来自于跟小伙伴交流,有些是我的自问自答,有些到现在也想不清楚,这篇文章就来写一写这些问题。 如何更高效的学习? 很多新人程...

阅读(55)评论(0)赞 (1)

Java

【备战春招/秋招系列】美团Java面经总结终结篇 (附详解答案)

5

zhuangli 发布于 2018-11-28

该文已加入开源项目:JavaGuide(一份涵盖大部分Java程序员所需要掌握的核心知识的文档类项目,Star 数接近 14 k)。地址: github.com/Snailclimb/… . 系列文章: 【备战春招/秋招系列1】程序员的简历就该这样写 【备战春招/秋招系列2】初出...

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

Java

Java核心(四)你不知道的数据集合

5

songhua.gao 发布于 2018-11-28

导读:Map竟然不属于Java集合框架的子集?队列也和List一样属于集合的三大子集之一?更有队列的正确使用姿势,一起来看吧! Java中的集合通常指的是Collection下的三个集合框架List、Set、Queue和Map集合,Map并不属于Collection的子集,而是和...

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

Java

AbstractQueuedSynchronizer 队列同步器(AQS)

3

小丁 发布于 2018-11-27

队列同步器 (AQS), 是用来构建锁或其他同步组件的基础框架,它通过使用 int 变量表示同步状态,通过内置的 FIFO 的队列完成资源获取的排队工作。(摘自《Java并发编程的艺术》) 我们知道获取同步状态有独占和共享两种模式,本文先针对独占模式进行分析。 变量定义 priv...

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

Java

彻底搞清楚Java并发 (一) 基础

xiaoli.he 发布于 2018-11-23

多线程编程是为了让程序运行得更快,但是不是说,线程创建地越多越好,线程切换的时候上下文切换,以及受限于硬件和软件资源的限制问题 上下文切换 单核CPU同样支持多线程编程,CPU通过给每个线程分配CPU时间片来实现这个机制,时间片是CPU分配给各个线程的时间,这个时间片非常短,所以...

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

Java

Java并发编程之锁机制之(ReentrantLock)重入锁

6

hellas 发布于 2018-11-23

通过前面的文章,我们已经了解了 AQS(AbstractQueuedSynchronizer) 内部的实现与基本原理。现在我们来了解一下,Java中为我们提供的Lock机制下的锁实现– ReentrantLock(重入锁) ,阅读该篇文章之前,希望你已阅读以下文章。 ...

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