package com.nil.test;
import java.util.HashMap;
import java.util.LinkedList;
import java.util.Queue;
public class TestMain {
private static HashMap<String, String> propertiesCacheMap = new HashMap<String, String>();
private static final Object ourMonitor = new Object();
private static final Queue<Pair> ourTaskQueue = new LinkedList<Pair>();
class Pair {
Runnable action;
public Pair(Runnable runnable) {
action = runnable;
}
}
class MyRunable implements Runnable {
String fileName;
public MyRunable(String name) {
fileName = name;
}
@Override
public void run() {
for (int i = 0; i < 100; i++) {
System.out.println("=====i am:"+fileName+" ==>"+i);
}
if(propertiesCacheMap.containsKey(fileName))
{
propertiesCacheMap.remove(fileName);
}
}
}
public static void main(String args[]) {
TestMain test = new TestMain();
for (int i = 0; i < 10; i++) {
MyRunable runnable = test.new MyRunable("我是" + i);
Pair pair = test.new Pair(runnable);
writePropertiesCache(runnable.fileName, pair);
}
MyRunable runnable = test.new MyRunable("我是0" );
Pair pair = test.new Pair(runnable);
writePropertiesCache(runnable.fileName, pair);
System.out.println("==0===result:"+getContainKey("我是0"));
System.out.println("==9===result:"+getContainKey("我是9"));
System.out.println("==0===result:"+getContainKey("我是0"));
}
public static String getContainKey(String name)
{
return propertiesCacheMap.get(name);
}
public static void writePropertiesCache(String fileName, Pair pair) {
if (propertiesCacheMap.containsKey(fileName)) {
} else {
propertiesCacheMap.put(fileName, "false");
synchronized (ourMonitor) {
ourTaskQueue.offer(pair);
}
new Thread(new Runnable() {
@Override
public void run() {
// TODO Auto-generated method stub
synchronized (ourMonitor) {
Pair p = ourTaskQueue.poll();
p.action.run();
}
}
}).start();
}
}
}
结果:
=====i am:我是0 ==>0
=====i am:我是0 ==>1
=====i am:我是0 ==>2
=====i am:我是0 ==>3
=====i am:我是0 ==>4
=====i am:我是0 ==>5
=====i am:我是0 ==>6
=====i am:我是0 ==>7
=====i am:我是0 ==>8
=====i am:我是0 ==>9
=====i am:我是0 ==>10
=====i am:我是0 ==>11
=====i am:我是0 ==>12
=====i am:我是0 ==>13
=====i am:我是0 ==>14
=====i am:我是0 ==>15
=====i am:我是0 ==>16
=====i am:我是0 ==>17
=====i am:我是0 ==>18
=====i am:我是0 ==>19
=====i am:我是0 ==>20
=====i am:我是0 ==>21
=====i am:我是0 ==>22
=====i am:我是0 ==>23
=====i am:我是0 ==>24
=====i am:我是0 ==>25
=====i am:我是0 ==>26
=====i am:我是0 ==>27
=====i am:我是0 ==>28
=====i am:我是0 ==>29
=====i am:我是0 ==>30
=====i am:我是0 ==>31
=====i am:我是0 ==>32
=====i am:我是0 ==>33
=====i am:我是0 ==>34
=====i am:我是0 ==>35
=====i am:我是0 ==>36
=====i am:我是0 ==>37
=====i am:我是0 ==>38
=====i am:我是0 ==>39
=====i am:我是0 ==>40
=====i am:我是0 ==>41
=====i am:我是0 ==>42
=====i am:我是0 ==>43
=====i am:我是0 ==>44
=====i am:我是0 ==>45
=====i am:我是0 ==>46
=====i am:我是0 ==>47
=====i am:我是0 ==>48
=====i am:我是0 ==>49
=====i am:我是0 ==>50
=====i am:我是0 ==>51
=====i am:我是0 ==>52
=====i am:我是0 ==>53
=====i am:我是0 ==>54
=====i am:我是0 ==>55
=====i am:我是0 ==>56
=====i am:我是0 ==>57
=====i am:我是0 ==>58
=====i am:我是0 ==>59
=====i am:我是0 ==>60
=====i am:我是0 ==>61
=====i am:我是0 ==>62
=====i am:我是0 ==>63
=====i am:我是0 ==>64
=====i am:我是0 ==>65
=====i am:我是0 ==>66
=====i am:我是0 ==>67
=====i am:我是0 ==>68
=====i am:我是0 ==>69
=====i am:我是0 ==>70
=====i am:我是0 ==>71
=====i am:我是0 ==>72
=====i am:我是0 ==>73
=====i am:我是0 ==>74
=====i am:我是0 ==>75
=====i am:我是0 ==>76
=====i am:我是0 ==>77
=====i am:我是0 ==>78
=====i am:我是0 ==>79
=====i am:我是0 ==>80
=====i am:我是0 ==>81
=====i am:我是0 ==>82
=====i am:我是0 ==>83
=====i am:我是0 ==>84
=====i am:我是0 ==>85
=====i am:我是0 ==>86
=====i am:我是0 ==>87
=====i am:我是0 ==>88
=====i am:我是0 ==>89
=====i am:我是0 ==>90
=====i am:我是0 ==>91
=====i am:我是0 ==>92
=====i am:我是0 ==>93
=====i am:我是0 ==>94
=====i am:我是0 ==>95
=====i am:我是0 ==>96
=====i am:我是0 ==>97
=====i am:我是0 ==>98
=====i am:我是0 ==>99
=====i am:我是1 ==>0
=====i am:我是1 ==>1
=====i am:我是1 ==>2
=====i am:我是1 ==>3
=====i am:我是1 ==>4
=====i am:我是1 ==>5
=====i am:我是1 ==>6
=====i am:我是1 ==>7
=====i am:我是1 ==>8
=====i am:我是1 ==>9
=====i am:我是1 ==>10
=====i am:我是1 ==>11
=====i am:我是1 ==>12
=====i am:我是1 ==>13
=====i am:我是1 ==>14
=====i am:我是1 ==>15
=====i am:我是1 ==>16
=====i am:我是1 ==>17
=====i am:我是1 ==>18
=====i am:我是1 ==>19
=====i am:我是1 ==>20
=====i am:我是1 ==>21
=====i am:我是1 ==>22
=====i am:我是1 ==>23
=====i am:我是1 ==>24
=====i am:我是1 ==>25
=====i am:我是1 ==>26
=====i am:我是1 ==>27
=====i am:我是1 ==>28
=====i am:我是1 ==>29
=====i am:我是1 ==>30
=====i am:我是1 ==>31
=====i am:我是1 ==>32
=====i am:我是1 ==>33
=====i am:我是1 ==>34
=====i am:我是1 ==>35
=====i am:我是1 ==>36
=====i am:我是1 ==>37
=====i am:我是1 ==>38
=====i am:我是1 ==>39
=====i am:我是1 ==>40
=====i am:我是1 ==>41
=====i am:我是1 ==>42
=====i am:我是1 ==>43
=====i am:我是1 ==>44
=====i am:我是1 ==>45
=====i am:我是1 ==>46
=====i am:我是1 ==>47
=====i am:我是1 ==>48
=====i am:我是1 ==>49
=====i am:我是1 ==>50
=====i am:我是1 ==>51
=====i am:我是1 ==>52
=====i am:我是1 ==>53
=====i am:我是1 ==>54
=====i am:我是1 ==>55
=====i am:我是1 ==>56
=====i am:我是1 ==>57
=====i am:我是1 ==>58
=====i am:我是1 ==>59
=====i am:我是1 ==>60
=====i am:我是1 ==>61
=====i am:我是1 ==>62
=====i am:我是1 ==>63
=====i am:我是1 ==>64
=====i am:我是1 ==>65
=====i am:我是1 ==>66
=====i am:我是1 ==>67
=====i am:我是1 ==>68
=====i am:我是1 ==>69
=====i am:我是1 ==>70
=====i am:我是1 ==>71
=====i am:我是1 ==>72
=====i am:我是1 ==>73
=====i am:我是1 ==>74
====