前面写的一个小功能,上传文件到服务器,结束上传时由于要销毁线程,又是由于等待时间偶尔过长会造成主界面卡顿问题,想着优化一下,采用线程复用的思路
1、拿到所有需要上传的文件信息后,按并发数创建文件读取线程【读取完成变量】,读取到的数据块保留在线程中
2、上传类从线程中获取对应的文件块,并上传对应的文件块
3、文件读取完成后。如果还有读取任务,接受新的任务【1.会造成未上传完的文件块丢失,导致上传失败 2.读取完成变量被置为false,导致上传失败】
4、如果没有读取任务,关闭线程【同样,3中的问题更加凸出,而且由于线程已销毁,获取时还有很大可能导致程序崩溃】
1、拿到所有需要上传的文件信息后,按并发数创建文件读取线程【读取完成变量】,读取到的数据块保留在线程中
2、上传类,将保存数据块的容器地址传给读取线程,将读取到的文件块直接给上传类
3、文件读取完成后。如果还有读取任务,接受新的任务
4、如果没有读取任务,关闭线程【由于线程已销毁,读取完成变量变为垃圾值,导致再次上传时判断为读取失败,导致上传失败】
1、拿到所有需要上传的文件信息后,按并发数创建文件读取线程
2、上传类,将保存数据块的容器地址传给读取线程,将读取到的文件块直接给上传类
3、文件读取完成后。判断文件是否读取完毕,当前上传文件是否上传完成,如果没有上传完成不接新的任务,如果上传完成,判断是否还有读取任务,接受新的任务
4、如果没有读取任务,关闭线程
1、线程复用时,数据一定不要存放在线程中,任务委托类自己存放,避免接受新任务或销毁线程时导致的无法获取到数据。
2、线程复用并判断是否可以接受新任务时,一定要考虑任务委托类中是否有和线程类中的状态判断,如果有一定要当相关判断脱钩后再接取新任务。
上一篇:最新或2023(历届)关于文明礼仪的手抄报内容资料大全 文明礼仪手抄报内容简短20字图片 文明礼仪手抄报图片内容60个字
下一篇:最新或2023(历届)文明礼仪手抄报欣赏,自助餐的基本礼仪 中国饮食礼仪文化手抄报图片 漂亮难度高的文明礼仪手抄报