
Thread/IO
早起晨练啊
这个作者很懒,什么都没留下…
展开
-
异步与多线程的区别
From: http://kb.cnblogs.com/page/85931/随着拥有多个硬线程CPU(超线程、双核)的普及,多线程和异步操作等并发程序设计方法也受到了更多的关注和讨论。本文主要是想探讨一下如何使用并发来最大化程序的性能。 多线程和异步操作的异同 多线程和异步操作两者都可以达到避免调用线程阻塞的目的,从而提高软件的可响应性。甚至有些时候我们就认为多线程和异步操作是等...转载 2015-12-09 10:14:10 · 403 阅读 · 0 评论 -
线程进程是怎样使用多核的
最近由于有抢票的需求,对于一个用户而言,用一个死循环,一个刷票就好了,刷到了就break退出。但是现在我要考虑同时给很多人抢,那么必须要考虑并发。但是这是一个耗时的任务,很可能几天都不能结束这个任务,所以这个和普通的java web并发不同。我在思考如何设置这个线程模型时引出了一个问题,之前还一直都没思考过这个。 多核时,一个线程是始终由一个cpu核运行还是每个cpu核都会运行...原创 2018-07-19 16:21:17 · 7668 阅读 · 0 评论 -
空的死循环为什么会让cpu100%
while (1) { //空代码块 } 上面这个代码相信很多人都写过,这个代码的后果就是cpu会100%(具体数值要看cpu核数和操作系统对这个的表示方法,有的2核会显示50%,有的2核会显示100%),如果是单核那么你的电脑会相当卡了。解决这个问题的办法很简单 while (1) { sleep(1); }加上一个sleep(1),让她休眠一秒就好...原创 2018-07-19 17:10:04 · 10887 阅读 · 3 评论 -
获取java线程dump文件
死循环、死锁、阻塞、页面打开慢等问题,打线程dump是最好的解决问题的途径。所谓线程dump也就是线程堆栈,获取到线程堆栈有两步:1)获取到线程的pid,可以通过使用jps命令,在Linux环境下还可以使用ps -ef | grep java2)打印线程堆栈,可以通过使用jstack pid命令,在Linux环境下还可以使用kill -3 pid另外提一点,Thread类提供了一个ge...原创 2019-05-13 15:50:30 · 2894 阅读 · 0 评论