标签:并发编程

Java

java架构之路(多线程)JUC并发编程之Semaphore信号量、CountDownLatch、CyclicBarrier栅栏、Executo…

9

尖兵 发布于 2020-01-19

上期回顾: 上次博客我们主要说了我们juc并发包下面的ReetrantLock的一些简单使用和底层的原理,是如何实现公平锁、非公平锁的。内部的双向链表到底是什么意思,prev和next到底是什么,为什么要引入heap和tail来值向null的Node节点。高并发时候是如何保证st...

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

Java

你真的了解 volatile 关键字吗?

puefu.he 发布于 2020-01-19

今天,让我们一起来探讨Java 并发编程中的知识点:volatile 关键字 本文主要从以下三点讲解 volatile 关键字: volatile 关键字是什么? volatile 关键字能解决什么问题?使用场景是什么? volatile 关键字实现的原理? 在 Sun 的 JD...

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

Java

跟我一起夯实编程基础 – 资源汇总篇

1

changyuan.xu 发布于 2020-01-19

就是喝水吃饭一样,在我们的编程生涯中总是有哪些不管我们在哪都会碰到、用到的知识点,这些就是供人的编程基础啦。总是听别人说基础不好,基础很重要的,那基础包含哪些,可以大家就得想想了,我觉得有必要总结一下 包含哪些内容 大的块有: 计算机原理包括硬件的一些 – 这个基本都...

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

Java

【Java并发基础】Java内存模型解决有序性和可见性

3

darida 发布于 2020-01-18

前言 解决并发编程中的可见性和有序性问题最直接的方法就是禁用CPU缓存和编译器的优化。但是,禁用这两者又会影响程序性能。于是我们要做的是 按需禁用CPU缓存和编译器的优化 。 如何按需禁用CPU缓存和编译器的优化就需要提到 Java内存模型 。Java内存模型是一个复杂的规范。其...

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

Java

【Java并发基础】并发编程bug源头:可见性、原子性和有序性

2

yeseng 发布于 2020-01-16

前言 CPU 、内存、I/O设备之间的速度差距十分大,为了提高CPU的利用率并且平衡它们的速度差异。计算机体系结构、操作系统和编译程序都做出了改进: CPU增加了 缓存 ,用于平衡和内存之间的速度差异。 操作系统增加了 进程、线程 ,以时分复用CPU,进而均衡CPU与I/O设备之...

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

Java

Java 面试,码农相逢秃者胜

6

小丁 发布于 2020-01-16

每年的年初和年末,都是各家企业比拼年终,各大厂员工炫耀福利的“高光”时刻。 每年这个时候,无数平时很努力的程序员,看着自己年终奖,心里呐喊:明年我要进大厂,我要拿 10 个月年终。 如果,真的要拿到大厂 Offer,除了运气,扎实的基本功才是根本。如果,真想要丰厚的年终,除了努力...

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

Spring

美团面试 154 道题分享!

hellas 发布于 2020-01-14

点击上方“ 后厂技术官 ”,马上关注, 来源:程序员面试 Java集合22题 JVM与调优21题 并发编程28题 spring 25题 设计模式 10题 springboot 22题 Netty10题 Redis 16题 Java集合22题 ArrayList 和 Vector ...

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

Java

RxJava介绍(一)

1

zhuangli 发布于 2020-01-14

博客主页 1. 函数晌应式编程的概念 如果你曾经使用过 Java ,那么你 定听说过面向对象(OOP)的编程思想,也可能听说过 AOP ( Aspect Orient Programming ,面向切面编程)的编程思想。 1.1 响应式编程( Reactive Programmi...

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

Java

RxJava介绍(一)

1

邓龙华 发布于 2020-01-14

博客主页 1. 函数晌应式编程的概念 如果你曾经使用过 Java ,那么你 定听说过面向对象(OOP)的编程思想,也可能听说过 AOP ( Aspect Orient Programming ,面向切面编程)的编程思想。 1.1 响应式编程( Reactive Programmi...

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

Java

【Java并发基础】并发编程领域的三个问题:分工、同步和互斥

changyuan.xu 发布于 2020-01-13

前言 可以将Java并发编程抽象为三个核心问题:分工、同步和互斥。 这三个问题的产生源自对性能的需求。最初时,为提高计算机的效率,当IO在等待时不让CPU空闲,于是就出现了分时操作系统也就出现了并发。后来,多核CPU出现,不同的任务可以同时独立运行,于是就出现了并行【分工】。有了...

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

Java

java架构之路(多线程)JMM和volatile关键字(二)

6

songhua.gao 发布于 2020-01-13

貌似两个多月没写博客,不知道年前这段时间都去忙了什么。 好久以前写过一次和volatile相关的博客,感觉没写的那么深入吧,这次我们继续说我们的volatile关键字。 复习: 先来简单的复习一遍以前写过的东西,上次我们说了内存一致性协议M(修改)E(独占)S(共享)I(失效)四...

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

Java

Java 经典面试题,你用过 synchronized 吗?它的底层原理是什么?

2

songhua.gao 发布于 2020-01-13

作为Java程序员,不懂得并发编程显然已经不能满足市场需求了,尤其是在面试过程中将处于被动地位,也有可能面试将就此终结。 那么作为Java开发者的你,日常虽然可以基于Java的并发工具包实现并发编程,但它背后的原理和机制你真的明白吗?不妨来检验下自己,对于synchronized...

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

Java

Java中的管程模型

5

yanxinchi 发布于 2020-01-11

操作系统使用信号量解决并发问题,Java选择使用管程(Monitor)解决并发问题。信号量和管程是等价的,可以使用信号量实现管程,也可以使用管程实现信号量。 管程就是指管理共享变量,以及对共享变量的相关操作。具体到 Java 语言中,管程就是管理类的成员变量和方法,让这个类是线程...

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

Java

JVM—【01】认识JVM的内存布局和运行时数据区

5

小丁 发布于 2020-01-11

1. Java 内存区域 1.1. JVM 内存布局 与 运行时数据区 JVM 内存布局 与 运行时数据区 1.2. Heap 堆 它的唯一目的就是存放对象实例; 几乎所有对象实例和数组,分配内存的区域 。 堆内存区域是线程共享区域,并发编程时需要考虑线程安全问题。 可以通过 -...

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

编程技术

一场跨年晚会挣了50亿,B站在微服务治理中如何探索与实践?

26

yeseng 发布于 2020-01-11

作者 | 曹国梁 今年 B 站的跨年晚会成功出圈,“吊打”各大卫视。将流量、情怀、二次元、中西文化、传统与现代完美结合,被年轻人大呼“补课”,满足了粉丝们记忆深处最细腻的情绪。“走心”,是 B 站晚会成功的关键,也是 B 站在微服务治理中的态度。本文整理自曹国梁在趣头条技术沙龙上...

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

Java

互斥锁,解决原子性问题

7

likai 发布于 2020-01-09

并发编程有3个源头性问题:缓存导致的可见性问题,编译优化导致的有序性问题,以及线程切换导致的原子性问题。解决可见性问题和有序性问题的方法是按需禁用缓存和编译优化,Java的内存模型就是一种按需禁用缓存和编译优化的规则,它规定了 JVM 如何提供相关的方法,这些已经在 Java内存...

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

Java

Java学习的正确开箱方式

1

xirruiqiang 发布于 2020-01-09

在博主认为,对于入门级学习java的最佳学习方法莫过于视频+博客+书籍+总结,前三者博主将淋漓尽致地挥毫于这篇博客文章中,至于总结在于个人,实际上越到后面你会发现学习的最好方式就是阅读参考官方文档其次就是国内的书籍,博客次之,这又是一个层次了,这里暂时不提后面再谈。博主将为各位入...

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

Java

AtomicLong 是不是该淘汰了?

2

xiaoli.wang 发布于 2020-01-09

Photo By Instagram sooyaaa 问题 5. 相信你一定记得学习并发编程的一个入门级例子,多个线程操作一个变量,累加 10000 次,最后结果居然不是 10000。后来你把这个变量换成了并发包中的原子类型变量 AtomicLong,完美的解决了并发问...

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