分类目录归档:技术栈

异常


抛出异常需要构建异常栈,对异常进行捕获和处理,这个过程比较消耗系统的性能,怎么理解?

创建异常对象时会调用父类Throwable的fillInStackTrace()方法生成栈追踪信息,也就是调用native的fillInStackTrace()方法去爬取线程堆栈信息,为运行时栈做一份快照,正是这一部分开销很大

如何实现自定义异常?

继承RuntimeException,然后将writableStackTrace设置为false。

以下是RuntimeException的构造函数:

protected RuntimeException(String message, Throwable cau

Read more

Redis 锁超时


@阿福

锁超时可以通过两种方案来解决:

把执行耗时的方法从锁中剔除,减少锁中代码的执行时间,保证锁在超时之前,代码一定可以执行完; 把锁的超时时间设置的长一些,正常情况下我们在使用完锁之后,会调用删除的方法手动删除锁,因此可以把超时时间设置的稍微长一些。

Read more