摘要:
为什么要使用SwingWorker 在swing开发中,如果一个应用程序,执行一些任务,需要大量的时间来完成,比如下载一个大文件或执行一个复杂的数据库查询。 我们假设这些任务是由用户使用一个按钮触发的。在单线程应用程序,用户单击按钮,进入计算的过程,然后等待任务完成之前,所有的事件都在主线程EDT线 阅读全文
摘要:
一种习以为常的缓存写法: 看上去逻辑无比正确,但实际上会造成2种问题: 1、这种方法是不线程安全的。 2、产生数值写入重复,造成错误的数据。 如下图,在线程1执行计算数值的过程中,线程2也进入数据检查,将多次写入数据,程序非常危险。 演示错误代码: 1、传统的解决办法,使用重入锁 (getNumbe 阅读全文