Java同步代码转异步代码
Java同步代码转异步代码
Kagula
2009-11-18
摘要
Thread Thread Group
概要
利用Java源码,介绍同步代码转异步代码框架的使用,下半部份附框架源代码,阅读本文之前可以参考《Java多线程_编程模型研究》http://blog.csdn.net/lee353086/archive/2008/01/10/2033587.aspx
正文
TestThreads.java源码 用来示范异步调用
import kagula.multithread.MsgManagement;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
public class testThreads {
private static Log log = LogFactory.getLog(testThreads.class);
static public void main(String args[])
{
log.debug("-Test thread.begin!");
try
{
Object lockMain=new Object(); //用来锁住主线程,可以用来等待branch thread返回运算结果。
MsgManagement mm=new MsgManagement("MsgProc1",lockMain); //MsgManagement的实例化
String sTN =mm.invoke("t_main",new Class[] {String.class},new Object[] {new String("FirstT")});
String sTN2 =mm.invoke("t_main",new Class[] {String.class},new Object[] {new String("SecondT")});
log.debug("sTN="+sTN+" sTN2="+sTN2);
if(mm.activeCount()>0) {
mm.setMaxPriority(Thread.MAX_PRIORITY);
synchronized(lockMain)
{
lockMain.wait(100);
}
mm.interrupt();
}
log.debug("mm.getResult(sTN) "+mm.getResult(sTN));
log.debug("mm.getResult(sTN2) "+mm.getResult(sTN2));
}catch(Exception ex)
{
ex.printStackTrace();
}
log.debug("-Test thread.end!");
}
}
MsgManagement.java Original Thread.java源码 ,是异步框架
package kagula.multithread;
import java.util.Collections;
import java.util.HashMap;
import java.util.Map;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
/**
* 线程管理器
*
* Requirement: JDK1.6.x or above
*
* @author Jun Li
*
*/
public class MsgManagement extends ThreadGroup{
protected static Log log = LogFactory.getLog(MsgManagement
相关文档:
Map存储的是key->value的值对,key的值是唯一的,而value的值可以重复。通常使用的是HashMap或TreeMap,如果考虑性能,使用HashMap。TreeMap使用红黑树实现,保留有key值顺序性,会自动按照key值排序。
默认是按照key值的升序排序,key值必须实现 Comparator接口。如果希望按找一定规则排序,则需要重新定义compare函数 ......
这几天遇到了java的package问题(这种问题只是在cmd命令行模式下会遇到,如果用eclipse就不会有这种问题),把java中的package编译运行的问题总结一下,作为备忘。
首先,如果你有两个类:
(1)A.java
import edu.ustc.*;
&n ......
觉得这篇文章比较有用就转了。。。
webservice
在网上看了一下各类的教程,java和.net两种语言生成的webservice之间的互通始终是一个问题,想找一种java调用.net写的webservice代理方法不容易,结果摸索中jboss-ide这个Eclipse插件解决了问题.
当然首先是安装jboss-ide ......
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import au.com.bytecode.opencsv.CSVWriter;
public class CsvDemo {
public static void main(String[] args) throws IOException {
  ......
现在我们一起来看看,用Java如何操作Microsoft Word。
jacob,官网是http://danadler.com/jacob 这是一个开源的工具。最新版本1.7
官方的解释是:The JACOB Project: A JAva-COM Bridge
这是官方对下载文件的说明:
jacob.jar: a ......