标签:多线程

JAVA

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

herman 5年前 (2019-05-21) 1759浏览

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

业余杂谈

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

herman 5年前 (2019-01-22) 2444浏览

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

JAVA

代码中的Thread.sleep(0) 有什么意义?是写错了吗?

herman 6年前 (2018-10-16) 5552浏览

你以为你是一个高级工程师,实际上也就只是会用几个框架的API而已!最近代码中出现了一个 Thread.sleep(0),引起了大家的注意。有人说是写错了,有人说是没意义可以删掉!是这样吗?通过本文希望大家看完后有更大的收获! 我们...

JAVA

Redis 是单线程结构,但为何单线程还能支持高并发?

herman 6年前 (2018-08-02) 5732浏览 0评论

现在随便问一个程序员都能大谈特谈 Redis,但是你在深入一点问他:Redis 是单线程结构的,但为何单线程还能支持高并发?你一想,好像有点矛盾啊。和我们理解的有点不一样啊,高并发一般都是需要多个线程来处理吧,为什么 Redis 设计反而倒退来呢...

JAVA

CountDownLatch 压测教程

herman 6年前 (2018-06-09) 6435浏览 0评论

在实战项目中,我们除了使用 jemter 等工具进行压测外,还可以自己动手使用 CountDownLatch 类编写压测代码。可以说 jemter 的并发压测背后也是使用的 CountDownLatch。可见掌握 C...

JAVA

java 多线程 JVM 锁优化

herman 7年前 (2017-04-18) 3519浏览 0评论

JVM规范规定JVM基于进入和退出Monitor对象来实现方法同步和代码块同步,但两者的实现细节不一样。代码块同步是使用monitorenter和monitorexit指令实现,而方法同步是使用另外一种方式实现的,细节在JVM规范里并没有详细说明...

JAVA

工作线程数是不是设置的越大越好

herman 7年前 (2017-03-17) 4424浏览 2评论

根据经验来看,jdk api 一般推荐的线程数为CPU核数的2倍。但是有些书籍要求可以设置为CPU核数的8倍,也有的业务设置为CPU核数的32倍。 “工作线程数”的设置依据是什么,到底设置为多少能够最大化CPU性能,是本...

JAVA

再议java多线程Thread和Runable

herman 7年前 (2017-01-03) 3513浏览 0评论

多线程(英语:multithreading),是指从软件或者硬件上实现多个线程并发执行的技术。具有多线程能力的计算机因有硬件支持而能够在同一时间执行多于一个线程,进而提升整体处理性能。具有这种能力的系统包括对称多处理机、多核心处理器以及芯片级多处...

JAVA

java多线程互斥和JVM锁机制

herman 7年前 (2016-12-18) 4832浏览 0评论

synchronized的重量级别的锁,就是在线程运行到该代码块的时候,让程序的运行级别从用户态切换到内核态,把所有的线程挂起,让cpu通过操作系统指令,去调度多线程之间,谁执行代码块,谁进入阻塞状态。这样会频繁出现程序运行状态的切换,线程的挂起...