gpt4 book ai didi

java - 线程和闪屏

转载 作者:行者123 更新时间:2023-12-01 15:50:52 25 4
gpt4 key购买 nike

我有一个应用程序,在向用户呈现 GUI 之前,它依赖于从 N 个文件创建某些对象。我决定创建一个启动屏幕,并希望显示一个进度条,以估计应用程序初始任务的进度。

我刚刚开始研究java.util.concurrent API,正在考虑使用CountDownLatch和FutureTask来解决这个问题:为每个需要读取的文件创建一个FutureTask并获取构造的对象;使用 CountDownLatch 来确保在完成初步任务之前不会显示 GUI,并注册我们处于进程中的进度(通过查询 getCount() 并相应地在启动屏幕的图像上重新绘制状态栏。

这是否太过分了?

最佳答案

一个semaphore更好,因为您可以允许在启动期间重用任务的线程

使用 s = new Semaphore(-nbFiles+1) 创建信号量,并让每个任务在处理完文件后调用 s.release()

启动画面可以通过nbFiles+s.availablePermits()知道一切进展到什么程度

关于java - 线程和闪屏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6074355/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com