耗时操作方案总结

跟中学语文课本上面描述的统筹方法一样, 当存在多个任务: 煮饭, 洗衣两个任务发生时, 如何异步的处理所有事情, 节省时间。

非统筹是这样做的【同步方法】:

第一步: 洗米, 煮饭,打开电饭煲

第二步:等待, 直到饭煮好后, 再洗衣服

 

统筹是这样做的【异步方法】:

第一步: 洗米, 煮饭,打开电饭煲

第二步:不理会煮饭, 直接洗衣服

 

 

举例以下几种耗时操作:

1. 界面调用一个耗时的后台操作(以SWT 为例) 

2.  Java 调用一个耗时的本地代码(JNI)

 

耗时操作危害是很大的, 比如界面如果调用耗时的后台操作, 整个界面都会假死, 用户误认为软件出现死机, JNI中, JVM调用本地代码直到本地代码返回, 非常容易出现假挂死的问题。

 

本章就是要讲解异步安排耗时任务, 提高解决问题效率的方法。

 

 

界面调用耗时操作的例子:

当GUI调用一个复杂的后台操作时, 如果按照普通方式组织代码, 则GUI会阻塞,知道后台操作完成. 这样GUI会完全假死——点击和拖动界面, 将没有任何响应。直到后台处理完毕。

解决方法:

1. 将耗时操作作为独立的线程启动.

2. 独立后台线程中, 一方面调用后台事物处理, 另一方面, 处理完毕后, 更新GUI线程

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值