comparison src/alice/test/codesegment/local/wordcount/SeparateArray.java @ 248:913ee9dfec4f

add recycle method
author sugi
date Wed, 29 May 2013 15:39:55 +0900
parents 6f8236208875
children
comparison
equal deleted inserted replaced
247:6e042fde5662 248:913ee9dfec4f
7 import java.io.IOException; 7 import java.io.IOException;
8 import java.io.InputStreamReader; 8 import java.io.InputStreamReader;
9 import alice.codesegment.CodeSegment; 9 import alice.codesegment.CodeSegment;
10 10
11 public class SeparateArray extends CodeSegment{ 11 public class SeparateArray extends CodeSegment{
12
13 private WordConfig conf; 12 private WordConfig conf;
14 13
15 SeparateArray(WordConfig conf){ 14 SeparateArray(WordConfig conf){
16 this.conf = conf; 15 this.conf = conf;
17 } 16 }
18 17
19 @Override 18 @Override
20 public void run() { 19 public void run() {
21
22 // cpu分だけTaskをあらかじめ作成 20 // cpu分だけTaskをあらかじめ作成
23 int cpu_num = Runtime.getRuntime().availableProcessors(); 21 int cpu_num = Runtime.getRuntime().availableProcessors();
24 for (int cnt =0;cnt < cpu_num;cnt++){ 22 for (int cnt =0;cnt < cpu_num;cnt++){
25 new WordCount(); 23 new WordCount();
26 } 24 }
27
28 BufferedReader br = null; 25 BufferedReader br = null;
29 int i = 0; 26 int i = 0;
30 try { 27 try {
31 br= new BufferedReader( 28 br= new BufferedReader(
32 new InputStreamReader( 29 new InputStreamReader(
34 new File(conf.filename) 31 new File(conf.filename)
35 ))); 32 )));
36 int size = conf.division * 1024; // Kbyte 33 int size = conf.division * 1024; // Kbyte
37 Range range = new Range(size); 34 Range range = new Range(size);
38 int check = br.read(range.array); 35 int check = br.read(range.array);
39 for (;check!=-1;i++){ 36 for (;check!=-1;i++){
40
41 char[] array; 37 char[] array;
42 array = new char[size]; 38 array = new char[size];
43 check = br.read(array); 39 check = br.read(array);
44 range.nextchar = array[0]; 40 range.nextchar = array[0];
45 ods.put("array", range); 41 ods.put("array", range);