channelRead对于耗时业务逻辑处理的优化 背景 :之前在channelRead中,接收到远端消息进行解码后直接使用了操作数据库这种耗时较久的业务逻辑处理。导致本地netty的工作线程阻塞,会降低可用线程数。另一个对于当前channel的心跳机制也有影响,会导致远端机器长时间接受不到心跳信号, ...
分类:
其他好文 时间:
2019-08-28 10:37:14
阅读次数:
105
转自 https://segmentfault.com/a/1190000015316332 一、HTTP/1.x Http1.x 缺陷:线程阻塞,在同一时间,同一域名的请求有一定数量限制,超过限制数目的请求会被阻塞 http1.0 缺陷:浏览器与服务器只保持短暂的连接,浏览器的每次请求都需要与服务 ...
分类:
Web程序 时间:
2019-08-26 11:28:59
阅读次数:
122
多线程相关的问题 1.什么是进程? ? 正在执行的程序 2.什么是线程? ? 进程的子单位,一个能够完成独立功能的执行路径 3.为什么需要开启多线程? 当执行某些耗时操作的任务的时候需要开启多线程,防止线程阻塞 能够让两个任务看起来像是在同时执行 提高CPU的使用率,进而提高进程和内存的使用率 4. ...
分类:
编程语言 时间:
2019-08-25 15:54:14
阅读次数:
85
join合并线程,插队线程,将此线程执行完成后,再执行其他线程,其他线程阻塞join是一个成员方法,必须通过Thread对象调用publicclassn{publicstaticvoidmain(String[]args)throwsInterruptedException{Threadt=newThread(()->{for(inti=0;i<5;i++){System.out.pr
分类:
编程语言 时间:
2019-08-12 23:38:01
阅读次数:
105
悲观锁总是假设最坏的情况,每次去拿数据的时候都认为别人会修改,所以每次在拿数据的时候都会上锁,这样别人想拿这个数据就会阻塞直到它拿到锁(共享资源每次只给一个线程使用,其它线程阻塞,用完后再把资源转让给其它线程)。传统的关系型数据库里边就用到了很多这种锁机制,比如行锁,表锁等,读锁,写锁等,都是在做操 ...
分类:
其他好文 时间:
2019-08-11 17:22:13
阅读次数:
104
1、使用top命令查找出消耗最多的进程id 2、查看进程中具体线程的资源消耗情况 3、将线程ID转成16进制 4、查找具体阻塞的代码中的方法 5、其他的一些常用命令 6、jstat和jmap(此仅限于了解,待做详细总结) ...
分类:
编程语言 时间:
2019-08-11 01:06:02
阅读次数:
231
java并发LockSupport LockSupport是阻塞和唤醒线程的重要类。 park()方法使得 当前线程 阻塞 unpark(Thread thread)唤醒线程 例子 可以把注释取消再执行,就会发现park()方法使得 当前线程 阻塞会使得main线程阻塞,无法结束。 java pac ...
分类:
编程语言 时间:
2019-08-09 13:34:10
阅读次数:
84
在微服务架构中,根据业务需求拆分成一个个的微小服务,然后服务与服务之间可以相互RPC远程调用。在SpringCloud可以使用RestTemplate+Ribbon或者Feign来进行RPC远程调用。为了保证服务高可用性,单个服务通常会进行集群部署。由于网络原因或者自身的原因,服务并不能保证百分之一百可用,如果服务方出现问题,调用这个服务就会出现线程阻塞,此时若有出现大量请求,导致服务方瘫痪。这时
分类:
其他好文 时间:
2019-08-03 23:45:34
阅读次数:
238
一、发生一个事件时,事件及事件处理句柄会被放入浏览器的事件队列,事件可归为以下几类: 浏览器事件:window.load、document.DomContentLoaded等 网络请求事件:ajax、websocket 用户事件:单双击、鼠标滚动、调整页面大小等 计时器事件:setTimeout,s ...
分类:
Web程序 时间:
2019-07-17 18:30:01
阅读次数:
155
10.锁悲观锁:总是假设最坏的情况,每次去拿数据的时候都认为别人会修改,所以每次在拿数据的时候都会上锁,这样别人想拿这个数据就会阻塞直到它拿到锁(共享资源每次只给一个线程使用,其它线程阻塞,用完后再把资源转让给其它线程)。传统的关系型数据库里边就用到了很多这种锁机制,比如行锁,表锁等,读锁,写锁等, ...
分类:
其他好文 时间:
2019-07-09 00:10:26
阅读次数:
86