diff src/main/java/christie/codegear/StartCodeGear.java @ 2:bacdcb5e6dcf

change StartCodeGear static
author Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
date Tue, 12 Dec 2017 16:48:30 +0900
parents 3ea61d0bfc34
children e3bb0eea73f2
line wrap: on
line diff
--- a/src/main/java/christie/codegear/StartCodeGear.java	Mon Dec 11 21:19:25 2017 +0900
+++ b/src/main/java/christie/codegear/StartCodeGear.java	Tue Dec 12 16:48:30 2017 +0900
@@ -1,19 +1,25 @@
 package christie.codegear;
 
+import java.util.HashMap;
 import java.util.concurrent.LinkedBlockingQueue;
 import java.util.concurrent.ThreadPoolExecutor;
 import java.util.concurrent.TimeUnit;
 
 public interface StartCodeGear {
-    default CodeGearManager createCodeGearManager(ThreadPoolExecutor exe){
-        return new CodeGearManager(exe);
+    HashMap<String, CodeGearManager> cgms = new HashMap<String, CodeGearManager>();
+    ThreadPoolExecutor threadPool = new ThreadPoolExecutor(Runtime.getRuntime().availableProcessors(), // initial number of threads
+            Runtime.getRuntime().availableProcessors(),
+            Integer.MAX_VALUE, // keepAliveTime
+            TimeUnit.SECONDS,
+            new LinkedBlockingQueue<Runnable>());
+
+    static CodeGearManager createCGM(String name){
+        CodeGearManager cgm = new CodeGearManager(threadPool);
+        cgms.put(name, cgm);
+        return cgm;
     }
 
-    default ThreadPoolExecutor createThreadPool(){
-        return new ThreadPoolExecutor(Runtime.getRuntime().availableProcessors(), // initial number of threads
-                Runtime.getRuntime().availableProcessors(),
-                Integer.MAX_VALUE, // keepAliveTime
-                TimeUnit.SECONDS,
-                new LinkedBlockingQueue<Runnable>());
+    static CodeGearManager getCGM(String name){
+        return cgms.get(name);
     }
 }