It is just reference Services.
Almost this Code is copied from Apache' Avalon-Cornerstone.
Cornerstone is a good Component. but
It can only run on Avalon Framework. so
I just modified them to remove the coupling with Avalon Framework
services.xml
<?xml version="1.0" encoding="UTF-8"?>
<services>
<service id="ThreadManager"
class="sunheart.third.thread.impl.ResourceLimitingThreadManager" />
</services>
Java code
// Worker.java
package example;
/**
*
*/
public class Worker implements Runnable {
int waitTime;
public Worker(int waitTime) {
this.waitTime = waitTime;
}
/*
* (non-Javadoc)
*
* @see java.lang.Runnable#run()
*/
public void run() {
System.out.println("start:" + Thread.currentThread());
try {
Thread.sleep(waitTime * 1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println("end:" + Thread.currentThread());
}
}
// ThreadTest.java
package example;
import sunheart.service.ServiceManager;
import sunheart.service.thread.ThreadManager;
public class ThreadTest {
public static void main(String[] args) {
System.out.println("main start");
ThreadManager threadManager = (ThreadManager) ServiceManager
.lookupService(ThreadManager.id);
ThreadTest test = new ThreadTest();
Worker a = new Worker(3);
Worker b = new Worker(2);
threadManager.getDefaultThreadPool().execute(a);
threadManager.getDefaultThreadPool().execute(b);
try {
Thread.sleep(5000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
System.out.println("main end");
}
}