2025年06月16日
本文详细谈谈JDK1.7中新推出的线程池:ForkJoinPool。但ForkJoinPool的出现并不是为了替代ThreadPoolExecutor,而是作为它的补充,因为在某些场景下,它的性能会比ThreadPoolExecutor更好。在之前的模式中,往往一个任务会分配给一条线程执行,如果有个任务耗时比较长,并且在处理期间也没有新的任务到来,那么则会出现一种情况:线程池中只有一条线程在处理这个大任务,而其他线程却空闲着,这会导致CPU负载不均衡,空闲的处理器无法帮助工作,从而无法最大程度上发挥多核机器的性能。而ForkJoinPool则可以完美解决这类问题,但ForkJoinPool更适合的是处理一些耗时的大任务,如果是普通任务,反而会因为过多的任务拆分和多条线程CPU的来回切换导致效率下降。
2025年06月16日
首先,栈 (stack) 是一种串列形式的 数据结构。这种数据结构的特点是 后入先出 (LIFO, Last In First Out),数据只能在串列的一端 (称为:栈顶 top) 进行 推入 (push) 和 弹出 (pop) 操作。根据栈的特点,很容易地想到可以利用数组,来实现这种数据结构。但是本文要讨论的并不是软件层面的栈,而是硬件层面的栈。
2025年06月16日
每天十五分钟,熟读一个技术点,水滴石穿,一切只为渴望更优秀的你!
————零声学院
存储器是一种必须仔细管理的重要资源。在理想的情况下,每个程序员都喜欢无穷大、
快速并且内容不易变(即掉电后内容不会丢失)的存储器,同时又希望它是廉价的。但不幸
的是,当前技术没有能够提供这样的存储器,因此大部分的计算机都有一个存储器层次结构,
2025年06月16日
作者:ivansli,腾讯 IEG 运营开发工程师
在深入学习 Golang 的 runtime 和标准库实现的时候发现,如果对 Golang 汇编没有一定了解的话,很难深入了解其底层实现机制。在这里整理总结了一份基础的 Golang 汇编入门知识,通过学习之后能够对其底层实现有一定的认识。
平时业务中一直使用 PHP 编写代码,但是一直对 Golang 比较感兴趣,闲暇、周末之余会看一些 Go 底层源码。
2025年06月16日
来源:
https://www.cnblogs.com/NanoDragon/p/12736887.html
今天来带大家研究一下Linux内存管理。对于精通 CURD 的业务同学,内存管理好像离我们很远,但这个知识点虽然冷门(估计很多人学完根本就没机会用上)但绝对是基础中的基础,这就像武侠中的内功修炼,学完之后看不到立竿见影的效果,但对你日后的开发工作是大有裨益的,因为你站的更高了。
2025年06月16日
fork/join作为一个并发框架在jdk7的时候就加入到了我们的java并发包java.util.concurrent中,并且在java 8 的lambda并行流中充当着底层框架的角色。
这样一个优秀的框架设计,我自己想了解一下它的底层代码是如何实现的,所以我尝试的去阅读了JDK相关的源码。下面我打算分享一下阅读完之后的心得~。
了解一个框架的第一件事,就是先了解别人的设计思路!
2025年06月16日
一个线程池任务的内存占用由以下组成:
2025年06月16日
在多线程、多处理器、分布式环境的编程时代,并发是一个不可回避的问题。既然并发问题摆在面前一个到无法回避的坎,倒不如拥抱它,把它搞清楚,花一定的时间从操作系统底层原理到Java的基础编程再到分布式环境等几个方面深入探索并发问题。先就从原理开始吧。