易截截图软件、单文件、免安装、纯绿色、仅160KB

java线程池

          线程池主要是用来 处理多个请求时,减少资源消耗,提高应用性能。
        下面的代码是来自于 孙卫琴:<<Java网络编程精解>> 中线程池实现源码, 代码结构简单清晰,对于理解线程池,wait(),notify()方法都有有很好的帮助.
        import java.util.LinkedList;
public class ThreadPool extends ThreadGroup {
private boolean isClosed = false; // 线程池是否关闭
private LinkedList<Runnable> workQueue; // 表示工作队列
private static int threadPoolID; // 表示线程池ID
private int threadID; // 表示工作线程ID
public ThreadPool(int poolSize) { // poolSize指定线程池中的工作线程数目
super("ThreadPool-" + (threadPoolID++));
setDaemon(true);
workQueue = new LinkedList<Runnable>(); // 创建工作队列
for (int i = 0; i < poolSize; i++)
new WorkThread().start(); // 创建并启动工作线程
}
/** 向工作队列中加入一个新任务,由工作线程去执行该任务 */
public synchronized void execute(Runnable task) {
if (isClosed) { // 线程池被关则抛出IllegalStateException异常
throw new IllegalStateException();
}
if (task != null) {
workQueue.add(task);
notify(); // 唤醒正在getTask()方法中等待任务的工作线程
}
}
/** 从工作队列中取出一个任务,工作线程会调用此方法 */
protected synchronized Runnable getTask() throws InterruptedException {
while (workQueue.size() == 0) {
if (isClosed) {
return null;
}
wait(); // 如果工作队列中没有任务,就等待任务
}
return workQueue.removeFirst();
}
/** 关闭线程池 */
public synchronized void close() {
if (!isClosed) {
isClosed = true;
workQueue.clear();
interrupt();
}
}
/** 等待工作线程把所有任务执行完 */
public void join() {
synchronized (this) {
isClosed = true;
notifyAll(); // 唤醒还在getTask()方法中等待任务的工作线程
}
Thread[] threads = new Thread[activeCount()];
// enumerate()方法继承自ThreadGroup类,获得线


相关文档:

Java 5.0 泛型之 通配符

package Demo;
// 通配符
class Info14<T> {
private T var; // 定义泛型变量
public void setVar(T var) {
this.var = var;
}
public T getVar() {
return this.var;
}
public String toString() { // 直接打印
return this.var.toString();
}
}
public class GenericsDemo14 {
public ......

通过Java反射调用方法

通过Java反射调用方法
 
这是个测试用的例子,通过反射调用对象的方法。
 
 
TestRef.java
import java.lang.reflect.Method;
import java.lang.reflect.InvocationTargetException;
/**
* Created by IntelliJ IDEA.
* File: TestRef.java
* User: leizhimin
* Date: 2008-1-28 14:48:44 ......

Ubuntu下Java环境的搭建

原帖地址:http://www.hengxinsoft.com/2009/07/ubuntu%E4%B8%8Bjava%E7%8E%AF%E5%A2%83%E7%9A%84%E6%90%AD%E5%BB%BA/
安装
打开终端:输入命令:
sudo apt-get install sun-java6-jdk
提示:安装过程中需要你回答是否同意使用协议(终端中红蓝色的提示界面),此时按tab键至OK,再按回车即可正常安装
待安装完毕后选择 ......

Java 5.0 泛型之 Java泛型的嵌套设置

package Demo;
// Java泛型的嵌套设置
class Info31<T, V> { // 接收两个泛型类型
private T key;
private V value;
public Info31(T key, V value) {
this.setKey(key);
this.setValue(value);
}
public void setKey(T key) {
this.key = key;
}
public void setValue(V value) {
this. ......

使用ObjectSNMP的java例子

下面的例子,就是使用ObjectSNMP获取RFC1213-MIB的例子:其中的system和ifTable对象就是对应的SNMP MIB中的system组合interface中的ifTable表。
class TestMibMapping
{
SNMPAPI snmpapi;
SNMPNodeParam nodeParam;
public TestMibMapping()
{
try
{
/**
......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号