1、通过ReentrantReadWriteLock、ConcurrentHashMap实现一个简易缓存。
2、通过TimerTask或Thread回收缓存。
package mvc.framework.cache;
import java.util.LinkedList;
import java.util.Map;
import java.util.Timer;
import java.util.TimerTask;
import java.util.concurr [阅读全文]
企业信息化建设
1、通过ReentrantReadWriteLock、ConcurrentHashMap实现一个简易缓存。
2、通过TimerTask或Thread回收缓存。
package mvc.framework.cache;
import java.util.LinkedList;
import java.util.Map;
import java.util.Timer;
import java.util.TimerTask;
import java.util.concurr [阅读全文]
package mvc.test;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.concurrent.CyclicBarrier;
import java.util.concurrent.ExecutorService;
import ja [阅读全文]
package thread.map;
import java.util.concurrent.ConcurrentHashMap;
public class Consumer implements Runnable {
private String name;
private ConcurrentHashMap<String, String> map;
private int fromIndex;
public Consumer(String name, C [阅读全文]
package thread.linkedqueue;
import java.util.concurrent.ConcurrentLinkedQueue;
import java.util.concurrent.CountDownLatch;
public class Worker implements Runnable {
private CountDownLatch downLatch;
private String name;
private Concurrent [阅读全文]
package thread.schedule;
/**
* 实现Runnable接口
* @author add by jzh 2011-12-28
*
*/
public class Hello implements Runnable {
private String name;
public Hello(String name) {
this.name = name;
}
@Override
public void run() {
Sys [阅读全文]
package thread.semaphore;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.Semaphore;
public class Test {
/**
* @author jzh 2011-12-27
* @param args
*/
public static voi [阅读全文]
package thread.latch;
import java.util.concurrent.CountDownLatch;
public class Leader implements Runnable {
private CountDownLatch downLatch;
public Leader(CountDownLatch downLatch) {
this.downLatch = downLatch;
}
public void run() {
package thread.group;
public class SayThread extends Thread {
public SayThread(ThreadGroup group, String name) {
super(group, name);
}
public void run() {
for (int i = 0; i < 5; i++) {
System.out.println(getName() + " = " + i);
try [阅读全文]
package thread.exchanger;
import java.util.concurrent.Exchanger;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
public class Test {
/**
* @author jzh 2011-12-27
* @param args
*/
public static voi [阅读全文]
package thread.control;
public class ConsumerThread extends Thread {
private Warehouse warehouse;
private int number;
public ConsumerThread(Warehouse obj, int number) {
warehouse = obj;
this.number = number;
}
public void run() {
in [阅读全文]