博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
识别线程结束,获取信息
阅读量:5839 次
发布时间:2019-06-18

本文共 2210 字,大约阅读时间需要 7 分钟。

  hot3.png

1.轮询	// 执行线程		for (Thread t : threadlist) {			t.start();		}		rewhile:while (true) {			try {				Thread.sleep(1L);			} catch (InterruptedException e) {				e.printStackTrace();			}			for (Thread t : threadlist) {				if (t.isAlive())					continue rewhile;			}						threadlist.clear();			threadlist = null;			return;		}2.连接线程        List
joinReturnDigestList = new ArrayList
(                fileList.size());        for (File file : fileList) {            JoinReturnDigest joinReturnDigest = new JoinReturnDigest(file);            joinReturnDigestList.add(joinReturnDigest);            joinReturnDigest.start();        }                StringBuffer result_buffer = new StringBuffer();                for(JoinReturnDigest joinReturnDigest : joinReturnDigestList){            try {                //连接线程      join       等待该线程终止                joinReturnDigest.join();                result_buffer.append(joinReturnDigest.getDigest());            } catch (InterruptedException e) {                e.printStackTrace();            }        }3.回调Class Thread:        @Override    public void run() {        FileInputStream fileInputStream;        try {            fileInputStream = new FileInputStream(file);            MessageDigest messageDigest = MessageDigest.getInstance("SHA");            DigestInputStream digestInputStream = new DigestInputStream(fileInputStream, messageDigest);            while(digestInputStream.read() != -1){}            byte[] bytes = messageDigest.digest();            this.sendDigest(bytes);        } catch (FileNotFoundException e) {            e.printStackTrace();        } catch (NoSuchAlgorithmException e) {            e.printStackTrace();        } catch (IOException e) {            e.printStackTrace();        }    } Class CallBack:    public void calculateDigest() {        ListCallbackDigest listCallbackDigest = new ListCallbackDigest(file);        listCallbackDigest.addDigestListener(this);        Thread thread = new Thread(listCallbackDigest);        thread.start();    }    @Override    public void digestCalculated(byte[] digest) {        this.digest = digest;        System.out.println(this);    }

转载于:https://my.oschina.net/foggy/blog/60237

你可能感兴趣的文章
1015. 德才论 (25)
查看>>
命令导出mysql数据库
查看>>
day13
查看>>
对Ul下的li标签执行点击事件——如何获取你所点击的标签
查看>>
PhpStorm代码编辑区竖线的用途以及如何去掉
查看>>
SpringMvc+Spring+Mybatis+Maven整合
查看>>
将UIImage保存到相册
查看>>
UIButton 传值
查看>>
关于SringMvc的参数的传递
查看>>
Webform Repeater的灵活运用
查看>>
hadoop自动安装的脚本与步骤
查看>>
ORA-01033 ORA-01109 ORA-01034 ORA-12514 ORA-24324 ORA-01041 ORA-01157 ORA-01110
查看>>
十字链表
查看>>
微软面试100题----终
查看>>
【转】Oracle数据库相关的书籍推荐
查看>>
CSS知识梳理02
查看>>
linux驱动中断注册与注销带来的段错误
查看>>
js加减乘除丢失精度
查看>>
Installing Chocolatey
查看>>
二叉树的前序、中序、后序遍历非递归实现
查看>>