标签:java 多线程

JAVA

volatile可见性原理最强总结

herman 5年前 (2020-01-11) 2811浏览

最近看到一篇很好的 volatile 可见性原理总结,分享给大家! volatile 是一种轻量且在有限的条件下线程安全技术,它保证修饰的变量的可见性和有序性,但非原子性。相对于 synchronize 高效,而常常跟 synchronize...

JAVA

并发编程的核心是产生矛盾,解决矛盾的过程

herman 6年前 (2019-05-21) 1976浏览

华为要崛起,阻碍了某些人的利益,因此与他们产生了矛盾。矛盾被所有人讨厌,但我们又不得不面对现实。 CPU、IO、内存等它们各自的速度并不相同,因此它们之间也会产生矛盾。CPU 跑的快,磁盘跑的慢,因此我们引入了内存这个中间桥梁来解决矛盾。 ...

JAVA

极客时间《Java 性能调优实战》购买返现24

herman 6年前 (2019-05-20) 3626浏览

任何一个项目或者语言都需要提供一些不同场景下的支持。支持的可选项多了,在面对不同的业务场景时,就需要调优。 所谓调优,就是调整到最佳的状态。常见的有 Java 调优,MySQL 调优,Go 调优,JVM 调优等。今天极客时间又上线了一门新课程...

JAVA

阿里的一道线程面试题,面哭了无数人

herman 6年前 (2019-03-14) 2881浏览

很多人都想进 BAT,但是并不是每个人都能如愿。BAT 的面试非常的严格,今年春招,阿里的一道线程面试题,就淘汰了无数的人! 今天我对这道题,分别用了 3 种不同的方法实现了,供大家参考! 题目如下: 通过N个线程顺序循环打...

JAVA

分享几个你可能忽视的 java 面试题

herman 6年前 (2019-03-08) 2104浏览

3、4 月份是面试的黄金季,最近不管是知乎还是微信里,都有不是人在问我要资料,也或者是让我下载一些面试资料。 所以,我还是分享一些简单的面试题吧,希望能够帮助到你们! 面试其实就是靠复习,复习的好,就容易找到工作! 那些...

JAVA

只因一个死锁程序和 jstack 分析,我给面试的程序员主动加薪 1 K

herman 6年前 (2019-03-04) 1863浏览

昨天,我面试了不少程序员,很多程序员和背书一样。于是后面,我就改变了一下面试技巧。给来的人,一人一台电脑,要求写出个死锁程序,并且使用 jstack 分析出现问题的代码。时间不能超过 1 个半小时。 问题一出,有两个程序员起身要走了,我问为...

JAVA

Java 为什么要让 String 设计成不可变的?

herman 6年前 (2019-02-14) 2868浏览

接上篇文章《Java 中 String 为什么设计成 final 类?为什么它有“不可变性”?》我们再来说说 Java 为什么要让 String 设计成不可变的? 任何事情都得有原因吧,Java 设计 String ...

JAVA

拜托别再问我CPU过高100%,内存泄露的问题了!

herman 6年前 (2019-01-23) 5183浏览

群里经常有网友提问 CPU,内存相关的问题。还有一些索引问题,QPS 等问题。以至于我写了很多拜托系列的文章。 比如,这两篇《拜托别在问我 MySQL 性能优化了!》、《拜托,别再问我 QPS、TPS、PV、UV、GMV、IP、RPS 好吗...

业余杂谈

一次生产事故让我学会了 Nginx 限速

herman 6年前 (2019-01-22) 2727浏览

前方的路都是坑,只有你踩过,你才知道,经验就是钱。别问公司里,同样敲的代码,为啥别人比你工资高,因为别人踩的坑比你多。 最近,我们生产服务器就出了一次故障。这个故障本来是一个小问题,但是迫于我们没有运维,就只能我们硬着头皮去自己研究摸索。最...

JAVA

SimpleDateFormat 线程安全问题让我们穿越到远古和未来

herman 6年前 (2019-01-17) 3329浏览

最近一直在忙于救火,陆陆续续的有不少用户反馈我们的系统会出错,下单时间不是在远古就是在未来。而负责后台管理系统的员工也提出了质疑,这个订单下单时间是 19xx 年,还有这个订单创建时间是 2187 年,这些都是非正常的订单,是不是有人攻击我们?这...

JAVA

了解多线程,先从“图”了解线程的基本状态

herman 6年前 (2018-12-12) 2502浏览

最近我看了混沌大学里张首晟教授的演讲,张教授始终强调一个“大道至简”的至理名言。因为所有的科学发现,技术进步都是从简单的基础知识得来的。比如:勾股定理,欧几里得几何,万有引力,相对论等,都是基于自然界的自然事实得出的。 ...

JAVA

从 HashMap 的扩容机制来说它为什么不是线程安全的!

herman 6年前 (2018-11-20) 2481浏览

我在前面的文章《Java 线程安全的3大核心:原子性、可见性、有序性》中已经说到了什么是线程安全!根据这篇文章,我们对照着 HashMap 来说说它为什么不是线程安全的? 前面我也强调过多次,回答是不是线程安全的请从:原子性、可见性、有序性...

JAVA

java.lang.OutOfMemoryError: Unable to create new native thread

herman 6年前 (2018-11-14) 13063浏览

没有一样东西是可以随便挥霍的,亲情、爱情都不行。JVM 也不行! 程序也都是和现实世界规律一致的。Java 中存在多线程,支持同时执行多项任务。所以物理机上即使只有一个CPU,我们也可以同时运行多个程序。 JVM 中的线程也需要内存空...

JAVA

Java 线程安全的3大核心:原子性、可见性、有序性

herman 6年前 (2018-11-06) 3385浏览

有人将原子性、可见性、有序性归结为 java 多线程的3大核心。我认为欠佳,应该把它归为线程安全的知识点。本文我就给大家详细的说下,线程安全的3个核心知识点:原子性、可见性、有序性。 在开始之前我们先来看看什么是线程安全? 线程安全 ...

JAVA

详解sleep与wait的区别

herman 6年前 (2018-10-31) 4834浏览

我之前在公众号里发了两篇关于线程的文章,没想到很多网友都想看,有评论说想看 sleep 与 wait 区别的,于是便有了本文。 从单词的意思上来说,两个都有使线程暂停的意思,但是实现原理以及使用的效果完全不一样。 sleep 使让线程...