学习笔记―线程返回数据
2013-04-13 14:35
363 查看
一、知识点
1、vector
Vector类在java中实现自动增长的对象数组,相对于ArrayList来说是线程安全的
2、线程中返回数据
节省资源的做法是线程执行完毕,调用主线程中的方法。而不必等待或轮询
定义一个监听器接口Listener
编写线程对象,实现Runnable的run方法,增加addListener方法,用来添加调用该线程的实例(实例均要求实现监听器的方法)
主线程实现Listener接口的回调方法,线程执行完就能通过接口调用实例的方法
二、部分示例代码
1、vector
Vector类在java中实现自动增长的对象数组,相对于ArrayList来说是线程安全的
2、线程中返回数据
节省资源的做法是线程执行完毕,调用主线程中的方法。而不必等待或轮询
定义一个监听器接口Listener
编写线程对象,实现Runnable的run方法,增加addListener方法,用来添加调用该线程的实例(实例均要求实现监听器的方法)
主线程实现Listener接口的回调方法,线程执行完就能通过接口调用实例的方法
二、部分示例代码
public interface DigestListener { public void digestCalculated(byte[] digest); }
List listenerList = new Vector(); public synchronized void addDigestListener(DigestListener l){ listenerList.add(l); }
private synchronized void sendDigest(byte[] digest){ ListIterator iterator = listenerList.listIterator(); while(iterator.hasNext()){ DigestListener dl = (DigestListener) iterator.next(); dl.digestCalculated(digest); } } @Override public void run() { try { FileInputStream in = new FileInputStream(input); MessageDigest sha = MessageDigest.getInstance("SHA"); DigestInputStream din = new DigestInputStream(in,sha); while(din.read()!=-1); din.close(); byte[] digest = sha.digest(); this.sendDigest(digest); } catch (Exception e) { e.printStackTrace(); } }
@Override public void digestCalculated(byte[] digest) { this.digest = digest; System.out.println(this); } public static void main(String[] args) { ListCallbackDigestUserInterface d = new ListCallbackDigestUserInterface(new File("1.txt")); d.calculateDigest(); }
相关文章推荐
- MySQL学习笔记_12_Linux下C++/C连接MySQL数据库(二) --返回数据的SQL
- SpringMVC学习笔记(六):如何返回数据
- [学习笔记]外部调用本地接口返回JSON数据
- MySQL学习笔记_13_Linux下C++/C连接MySQL数据库(三) --处理返回数据
- 【Spring学习笔记-MVC-3】SpringMVC返回Json数据-方式1
- linux多线程学习笔记六--一次性初始化和线程私有数据【转】
- android菜鸟学习笔记25----与服务器端交互(二)解析服务端返回的json数据及使用一个开源组件请求服务端数据
- 【Spring学习笔记-MVC-3.1】SpringMVC返回Json数据-方式1-扩展
- Androidx学习笔记(54)--- Activity返回时传递数据
- 学习笔记--Ajax:html格式返回数据
- 学习笔记--Ajax:XML格式返回数据
- Java多线程学习笔记——从Java JVM对多线程数据同步的一些理解
- SpringMVC学习笔记(7) 返回Json格式数据
- C++学习笔记之线程:数据共享与竞争,线程死锁
- Java多线程学习笔记——从Java JVM对多线程数据同步的一些理解
- Spring MVC 学习笔记11 —— 后端返回json格式数据
- Spring学习笔记(三十四):关于http的get请求返回的数据过长问题
- jQuery学习笔记--ajax查询,jQuery解析返回的json数据 详解
- jQuery学习笔记--ajax查询,jQuery解析返回的json数据 详解
- 学习笔记TF049:TensorFlow 模型存储加载、队列线程、加载数据、自定义操作