多线程
文章平均质量分 71
ak121077313
这个作者很懒,什么都没留下…
展开
-
线程数量与程序性能的关系
本文纯属经验之谈,关于单线程和多线程与程序性能的关系! 首先绝大多数设备都是多核的,多线程能比单线程更充分的利用cpu,多线程如果使用线程池就能省下创建线程的开销.如果只是纯粹的计算可能会比单线程要高,而且计算量越大差距会越明显 在我们的实际业务中,以读取数据库为例,当涉及到各种的io操作情况下,毫不犹豫的应该选择多线程了,能避免io传输带来无谓的耗时. 处理能力得到有效的提升...原创 2013-12-20 10:08:34 · 1562 阅读 · 0 评论 -
数据库连接池数量测试
线程数量设置的地方有3个,业务线程池 数据库连接池 数据库最大线程数 数据库最大线程数设置为500,只是为了不让连接池数量大于这个数,可无视这个数 测试代码,一个查询语句 一个update语句.查询语句无论怎么测试区别不是很明显 就先不去讨论这个,或者后面我再测试下.代码:public class SqlThread { @Autowired IUserDa...原创 2013-12-20 14:06:58 · 464 阅读 · 0 评论 -
构建更健壮的系统:如何干掉死循环的线程
为什么要干掉一个线程,这个和更健壮的系统有什么关系。有时候我会想到一个问题,开发的系统基本上就是自己/测试团队测试了几遍然后上线。上线后出现了不可预知的bug怎么办呢,例如出现了死循环或者部分逻辑有问题导致用户点击后会找出非常长的时间等待而且没办法进行其他操作。 java里面很多业务都用到了多线程,业务都放在线程池里面写Thread.interrupt() 是无法终止一...2017-09-28 20:53:15 · 446 阅读 · 0 评论 -
构建更健壮的系统:不同的业务放在不同的线程/线程池里面
有时候我们会发现新上线的部分业务出现了问题,并且影响了其他功能。我有时候想到从架构上如何避免这个问题,然后有了这样的一个思路。 开发的时候我们基本上不会考虑到这种问题,整个服务就共用一个线程池,甚至有些系统是单线程的。一旦出现问题整个服务就一起挂掉了这个肯定是我们不想看到的。解决这个问题方法就是把不同模块放在不同的线程里面,如果之前使用的是线程池那么 不同业务也要用不同...2017-09-28 21:11:43 · 659 阅读 · 0 评论 -
构建更健壮的系统:数据库连接池的问题Too many connections、timeout等等
首先,连接池是为了节省打开关闭数据库连接的一个手段,如果不用连接池,最大能获取连接的数量限制则是mysql等数据库端配置的max_connections字段的数量。使用连接池后,最大连接数就由程序这边来控制了,例如一般的最大连接数为20。一个连接池的配置最常见,最关键的配置是最大连接数和超时时间 <!-- 配置初始化大小、最小、最大...2017-10-06 22:19:24 · 516 阅读 · 0 评论 -
更快的线程池??
提起线程池我们会想到两件事:1.线程池是为了复用线程避免重复开辟线程带来开销.2.我们用多线程是为了提升执行效率,但是多线程会带来数据同步问题.加锁会降低性能,线程上下文切换也会降低性能. 我在想一个问题:能不能避免加锁和避免上下文切换带来的性能开销?如果能避免这个开销,多线程最后一个被诟病的问题岂不是解决了? 在此之前,我想说这个解决办法并不是用多个线程池组去管理...2018-07-24 10:21:13 · 202 阅读 · 0 评论