https://www.cnblogs C#多线程系列(3):原子操作 本章主要讲述多线程竞争下的原子操作。 目录 知识点 竞争条件 线程同步 CPU时间片和上下文切换 阻塞 内核模式和用户模式 Interlocked 类 1,出现问题 2,Interlocked.Increment() 3,Int ...
分类:
其他好文 时间:
2020-08-08 11:48:26
阅读次数:
82
1、 隐层版本信息(1) 隐藏HTTP 头部的版本信息(2) 隐藏404页面出现的版本号2、 Tomcat 中的三种运行模式之运行模式的优化 Tomcat支持三种接收请求的处理方式:BIO、NIO、APR 。(1) BIO(Blocking IO,阻塞式): 阻塞式I/O操作即使用的是传统 I/O操 ...
分类:
其他好文 时间:
2020-08-08 00:31:43
阅读次数:
53
BlockingQueue 使用场景:多并发处理,线程池 阻塞队列的使用 四组API 方式 抛出异常 有返回值,不抛异常 阻塞等待 超时等待 添加 add offer put offer( , , ) 删除 remove poll take poll( , ) 检测队列首部 element peek ...
分类:
其他好文 时间:
2020-08-07 12:31:28
阅读次数:
70
前两天看极客时间Java并发课程的时候,刷到一个概念:活锁。死锁,倒是不陌生,活锁却是第一次听到。在介绍活锁之前,我们先来复习一下死锁。下面的例子模拟一个转账业务,多线程环境,为了账户金额安全,对账户进行了加锁。1publicclassAccount{2publicAccount(intbalance,Stringcard){3this.balance=balance;4this.card=car
分类:
其他好文 时间:
2020-08-06 09:23:01
阅读次数:
52
select的作用 Go里面提供了一个关键字 select, 通过 select 可以监听channel上的数据流动. select 的用法与 switch 语言非常类似, 由 select 开始一个新的选择块, 每个选择条件由 case 语句来描述. 与 switch 语句相比, select 有 ...
分类:
其他好文 时间:
2020-08-04 09:47:11
阅读次数:
67
一、问题BIO和NIO作为Server端,当建立了10个连接时,分别产生多少个线程?答案:因为传统的IO也就是BIO是同步线程堵塞的,所以每个连接都要分配一个专用线程来处理请求,这样10个连接就会创建10个线程去处理。而NIO是一种同步非阻塞的I/O模型,它的核心技术是多路复用,可以使用一个链接上的不同通道来处理不同的请求,所以即使有10个连接,对于NIO来说,开启1个线程就够了。二、BIO代码实
分类:
其他好文 时间:
2020-08-02 10:14:31
阅读次数:
73
如何应对雪崩式请求? 雪崩式请求:当服务提供方由于某种原因挂掉导致服务调用方阻塞,最终引发系统的雪崩式崩溃称为雪崩。 通常可分为两种:缓存雪崩和应用雪崩 缓存雪崩:缓存服务器挂掉、突发流量导致局部缓存失效、热点缓存失效;常用三种解决方案:为不同的缓存设置不同的失效时间,避免缓存集中失效;使用锁机制控 ...
分类:
其他好文 时间:
2020-07-31 16:36:27
阅读次数:
89
一 IO操作本质 数据复制的过程中不会消耗CPU > 1 内存分为内核缓冲区和用户缓冲区 > # 2 用户的应用程序不能直接操作内核缓冲区,需要将数据从内核拷贝到用户才能使用 > # 3 而IO操作、网络请求加载到内存的数据一开始是放在内核缓冲区的 二 IO模型 1. BIO – 阻塞模式I/O 用 ...
分类:
其他好文 时间:
2020-07-31 12:28:33
阅读次数:
80
一次机房停电引发的思考今天早上到公司的时候,接到开发反馈DEV环境所有接口都卡,耗时都在一分钟以上,严重影响开发正常工作,然后通过网关的日志定位到原因是因为kafka集群不可用(总共3个broker,前一天晚上机房停电导致leader节点挂了),导致网关的反爬过滤器里面发送kafka消息的代码kafkaTemplat.send阻塞了60s,当时在想这个send方法不是异步的吗,为什么会阻塞60s?
分类:
其他好文 时间:
2020-07-31 01:13:59
阅读次数:
93