1700449469
1700449470
而且,异常类是不能缓存的,期望预先建立大量的异常对象以提高异常性能也是不现实的。
1700449471
1700449472
难道异常的性能问题就没有任何可提高的办法了?确实没有,但是我们不能因为性能问题而放弃使用异常,而且经过测试,在JDK 1.6下,一个异常对象创建的时间只需要1.4毫秒左右(注意是毫秒,通常一个交易处理是在100毫秒左右),难道我们的系统连如此微小的性能消耗都不允许吗?
1700449473
1700449474
注意 性能问题不是拒绝异常的借口。
1700449475
1700449476
1700449477
1700449478
1700449480
编写高质量代码:改善Java程序的151个建议 第9章 多线程和并发
1700449481
1700449482
We’re here to put a dent in the universe.Otherwise why else even be here?
1700449483
1700449484
活着就是为了改变世界,难道还有其他原因吗?
1700449485
1700449486
——Steve Paul Jobs(史蒂夫·乔布斯)
1700449487
1700449488
多线程技术可以更好地利用系统资源,减少对用户的响应时间,提高系统的性能和效率,但同时也增加了系统的复杂性和运维难度,特别是在高并发、大压力、高可靠性的项目中,线程资源的同步、抢占、互斥等都需要慎重考虑,以避免产生性能损耗和线程死锁。
1700449489
1700449490
1700449491
1700449492
1700449494
编写高质量代码:改善Java程序的151个建议 建议118:不推荐覆写start方法
1700449495
1700449496
多线程比较简单的实现方式是继承Thread类,然后覆写run方法,在客户端程序中通过调用对象的start方法即可启动一个线程,这是多线程程序的标准写法。不知道读者是否还能回想起自己的第一个多线程demo呢?估计一般是这样写的:
1700449497
1700449498
class MultiThread extends Thread{
1700449499
1700449500
@Override
1700449501
1700449502
public void start(){
1700449503
1700449504
//调用线程体
1700449505
1700449506
run();
1700449507
1700449508
}
1700449509
1700449510
@Override
1700449511
1700449512
public void run(){
1700449513
1700449514
//MultiThread do something.
1700449515
1700449516
}
1700449517
1700449518
}
[
上一页 ]
[ :1.700449469e+09 ]
[
下一页 ]