1.什么时候用池? 池的功能是限制启动的进程数或线程数。 什么时候应该限制? 当并发的任务数远远超过了计算机的承受能力时,即无法一次性开启过多的进程数或线程数时 ...
分类:
编程语言 时间:
2018-07-17 12:40:50
阅读次数:
154
1、名词解释: 栈帧:栈帧是用于支持虚拟机进行方法调用和方法执行的数据结构,它是虚拟机运行时数据区中的虚拟机栈的栈元素。 2、程序计数器: 程序计数器是一块比较小的内存空间,可以将它看作是当前线程所执行的字节码的行号指示器。 由于Java是支持多线程的语言,当运行的线程数超过CPU数量时,线程之间根 ...
分类:
其他好文 时间:
2018-07-16 23:44:35
阅读次数:
168
使用 ThreadLocal 不当可能会导致内存泄露,是什么原因导致的内存泄漏呢? 我们首先看一个例子,代码如下: 代码(1)创建了一个核心线程数和最大线程数为 6 的线程池,这个保证了线程池里面随时都有 6 个线程在运行。 代码(2)创建了一个 ThreadLocal 的变量,泛型参数为 Loca ...
分类:
编程语言 时间:
2018-07-15 00:13:35
阅读次数:
210
这篇文章不打算讲解什么是线程池?线程池怎么用?直接讲解原理 1、线程池关键参数解释 JDK 线程池的实现类是 ThreadPoolExecutor,构造函数关键参数解释如下: corePoolSize 核心线程,线程池维持的线程数量,即使没有任务执行也会维持这个数量不变,除非设置了 allowCor ...
分类:
编程语言 时间:
2018-07-12 13:32:55
阅读次数:
179
1.修改DNS:Vim /etc/resolv.conf 2.系统的内核参数 cat /proc/sys/kernel/pid_max 这个值表示进程ID的上限 cat /proc/sys/kernel/threads-max系统允许的最大线程数 echo "kernel.pid_max=64000 ...
分类:
系统相关 时间:
2018-07-11 17:10:12
阅读次数:
169
一、硬件信息1、总核数=物理CPU个数X每颗物理CPU的核数#总逻辑CPU数=物理CPU个数X每颗物理CPU的核数X超线程数2、查看物理CPU个数cat/proc/cpuinfo|grep"physicalid"|sort|uniq|wc-l3、查看每个物理CPU中core的个数(即核数)cat/proc/cpuinfo|grep"cpucores"|uni
分类:
系统相关 时间:
2018-07-09 17:17:26
阅读次数:
237
服务器配置:linux+tomcat 现象:Linux服务器没有崩,有浏览器中访问页面,出现无法访问的情况,没有报4xx或5xx错误(假死),并且重启tomcat后,恢复正常。 原因:tomcat默认最大连接数(线程数)200个,默认每一个连接的生命周期2小时(7200秒),tomcat使用http ...
分类:
其他好文 时间:
2018-07-09 12:26:52
阅读次数:
240
监控指标 1、load load表示在特定时间间隔内运行队列中的线程数,每个CPU核维护着一个运行队列,队列中的线程数越多,意味着cpu越繁忙。一般一个队列维护的线程数不大于3表示cpu运行正常,如果大于5表明cpu运行超负荷。查看load指标的指令为uptime 2、cpu使用率 通过top指令来 ...
分类:
其他好文 时间:
2018-07-08 22:03:27
阅读次数:
167
使用: Swoole 内存表优点: 速度快,单线程每秒可读写100万次。8核机器8线程可以支持每秒并发读写400万次 不占用IO资源 无需加锁,swoole_table内置行锁自选锁,所有操作均是多线程/多进程安全。用户层完全不需要考虑数据同步问题 使用场景: 可以用于解决多进程之间数据共享问题 * ...
分类:
其他好文 时间:
2018-07-08 10:41:46
阅读次数:
340
No1: 协程看上去也是子程序,但执行过程中,在子程序内部可中断,然后转而执行别的子程序,在适当的时候再返回来接着执行。 优势: 1.最大的优势就是协程极高的执行效率。因为子程序切换不是线程切换,而是由程序自身控制,因此,没有线程切换的开销,和多线程比,线程数量越多,协程的性能优势就越明显。 2.不 ...
分类:
编程语言 时间:
2018-07-07 23:26:19
阅读次数:
272