Mercurial > hg > Database > Alice
annotate src/alice/codesegment/CodeSegmentManager.java @ 335:2f003d5703d5 META_CODESEGMENT
Meta CodeSegment Test
author | sugi |
---|---|
date | Mon, 14 Apr 2014 15:46:29 +0900 |
parents | 1caa6970cf01 |
children | 5fa184113850 |
rev | line source |
---|---|
6 | 1 package alice.codesegment; |
2 | |
3 import java.util.concurrent.LinkedBlockingQueue; | |
21
145667a554ad
run CodeSegment with ThreadPoolExecutor
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
20
diff
changeset
|
4 import java.util.concurrent.ThreadPoolExecutor; |
145667a554ad
run CodeSegment with ThreadPoolExecutor
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
20
diff
changeset
|
5 import java.util.concurrent.TimeUnit; |
6 | 6 |
39 | 7 import org.apache.log4j.Logger; |
8 | |
6 | 9 public class CodeSegmentManager { |
44 | 10 |
6 | 11 private static CodeSegmentManager instance = new CodeSegmentManager(); |
70
f2d4a4686036
delete CodeSegment receive thread
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
68
diff
changeset
|
12 private ThreadPoolExecutor codeSegmentExecutor = new ThreadPoolExecutor(Runtime.getRuntime().availableProcessors(), // initial number of threads |
335 | 13 Runtime.getRuntime().availableProcessors(), |
14 Integer.MAX_VALUE, // keepAliveTime | |
15 TimeUnit.SECONDS, | |
16 new LinkedBlockingQueue<Runnable>()); | |
71
a3a2605e16a2
change checking debug mode of logger
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
70
diff
changeset
|
17 private Logger logger = Logger.getLogger(CodeSegmentManager.class); |
70
f2d4a4686036
delete CodeSegment receive thread
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
68
diff
changeset
|
18 |
6 | 19 public static CodeSegmentManager get() { |
20 return instance; | |
21 } | |
57 | 22 |
23 public static void submit(CodeSegment cs) { | |
335 | 24 if (cs.hasMeta()){ |
25 try { | |
26 CodeSegment meta = cs.getMetaClass().newInstance(); | |
27 meta.setCodeSegment(cs); | |
28 meta.setKey(); | |
29 | |
30 } catch (Exception e) { | |
31 e.printStackTrace(); | |
32 } | |
33 | |
34 } else { | |
35 CodeSegmentManager csManager = CodeSegmentManager.get(); | |
36 csManager.codeSegmentExecutor.execute(cs); | |
37 if (csManager.logger.isDebugEnabled()) { | |
38 csManager.logger.debug(cs.getClass().getName()); | |
39 } | |
57 | 40 } |
41 } | |
335 | 42 |
6 | 43 } |