![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
【JAVA】线程
文章平均质量分 89
JAVA前线
微信公众号「JAVA前线」
展开
-
面试官问如何动态修改线程池参数,我们聊了三十分钟
欢迎大家关注公众号「JAVA前线」查看更多精彩分享文章,主要包括源码分析、实际应用、架构思维、职场分享、产品思考等等,同时欢迎大家加我微信「java_front」一起交流学习0 文章概述流量洪峰是互联网生产环境经常遇到的情况,例如某个时间点进行商品抢购活动,或者某个时间点集中触发定时任务,这些场景都有可能引发流量洪峰,所以如何应对流量洪峰我们必须面对的问题。纵向维度我们可以从代理层、WEB层、服务层、缓存层、数据层进行思考,横向维度我们可以从高频检测、缓存前置、节点冗余、服务降级等方向进行思考。.原创 2021-04-12 12:31:09 · 2752 阅读 · 1 评论 -
深入分析缓存穿透和击穿问题解决方案
欢迎大家关注公众号「JAVA前线」查看更多精彩分享文章,主要包括源码分析、实际应用、架构思维、职场分享、产品思考等等,同时欢迎加我微信「java_front」一起交流学习1 文章概述在互联网场景中缓存系统是一个重要系统,为了防止流量频繁访问数据库,一般会在数据库层前设置一道缓存层作为保护。缓存是一个广义概念,核心要义是将数据存放在离用户更近的地方,或者是将数据存放在访问更快的介质。缓存对应到实际应用中可以分为内存缓存、远程缓存。内存缓存常见工具例如Guava、Ecache等,远程缓存常见系统例.原创 2020-12-04 18:28:45 · 325 阅读 · 0 评论 -
操作系统-线程
1 背景自从20世纪60年代提出进程这个概念以来,在操作系统中一直都是以进程为运行的基本单位。直到20世纪80年代中期,人们才又提出了更小的能独立运行的基本单位线程。为什么要引入线程这个概念呢?主要是因为在实际的应用中,人们需要提出一种新的实体,这个实体必须满足两个特性:1 各个实体之间可以并发执行。2 实体之间可以共享相同的地址空间。就像在同一个进程内部的各个函数,共享该转载 2017-01-01 11:48:17 · 1276 阅读 · 0 评论 -
Java自定义线程池和线程总数控制
1 概述池化是常见的思想,线程池是非常典型的池化的实现,《Java并发编程实战》也大篇幅去讲解了Java中的线程池。本文实现一个简单的线程池。2 核心类【1】接口定义public interface IThreadPool<Job extends Runnable> { /** * 关闭线程池 */ public void shutAlldown()...原创 2017-02-04 10:33:31 · 8082 阅读 · 0 评论 -
线程间共享数据
一、每个线程做执行的代码相同若每个线程执行的代码相同,共享数据就比较方便。可以使用同一个Runnable对象,这个Runnable对象中就有那个共享数据。public class MultiThreadShareData1{ public static void main(String[] args) { SaleTickets sale = new SaleTicket原创 2014-02-07 10:48:42 · 7469 阅读 · 3 评论 -
JAVA线程中的生产者和消费者问题
生产者消费者问题是研究多线程时绕不开的问题,描述的是有一块生产者和消费者共享的有界缓冲区,生产者往缓冲区放入产品,消费者从缓冲区取走产品,这个过程可以无休止的执行,不能因缓冲区满生产者放不进产品而终止,也不能因缓冲区空消费者无产品可取而终止。解决生产者消费者问题的方法有两种,一种是采用某种机制保持生产者和消费者之间的同步,一种是在生产者和消费者之间建立一个管道。前一种有较高的效率并且可控制转载 2014-06-23 07:05:54 · 1611 阅读 · 0 评论 -
操作系统-进程
1 进程的概念一个进程就是一个正在运行的程序。一个进程应该包含以下内容:(1) 程序的代码,既然进程是一个正在运行的程序,自然需要程序的代码(2) 程序的数据(3) CPU寄存器的值,包括通用寄存器,程序计数器(4) 堆(heap)是用来保存进程运行时动态分配的内存空间(5) 栈(stack)有两个用途,1保存运行的上下文信息。2在函数调用时保存被调用函数的形参或者局部变量转载 2016-12-29 18:40:15 · 4650 阅读 · 0 评论