Forum Stats

  • 3,853,784 Users
  • 2,264,268 Discussions
  • 7,905,444 Comments

Discussions

How to create multiple thread in a java program for analyzing comments?

User_40RXJ
User_40RXJ Member Posts: 1 Green Ribbon

Hi Team


I have a program that analyse comments per single line, how do i then multiple thread to it to allow more or seperate thread? Currently programming running sequentially only.


//Current code



import java.io.BufferedReader;

import java.io.File;

import java.io.FileNotFoundException;

import java.io.FileReader;

import java.io.IOException;

import java.util.HashMap;

import java.util.Map;


public class CommentAnalyzer {

private File file;

public CommentAnalyzer(File file) {

this.file = file;

}

public Map<String, Integer> analyze() {

Map<String, Integer> resultsMap = new HashMap<>();

try (BufferedReader reader = new BufferedReader(new FileReader(file))) {

String line = null;

while ((line = reader.readLine()) != null) {

if (line.length() < 15) {

incOccurrence(resultsMap, "SHORTER_THAN_15");


} else if (line.contains("Mover")) {


incOccurrence(resultsMap, "MOVER_MENTIONS");

} else if (line.contains("Shaker")) {


incOccurrence(resultsMap, "SHAKER_MENTIONS");

}

}

} catch (FileNotFoundException e) {

System.out.println("File not found: " + file.getAbsolutePath());

e.printStackTrace();

} catch (IOException e) {

System.out.println("IO Error processing file: " + file.getAbsolutePath());

e.printStackTrace();

}

return resultsMap;

}

/**

* This method increments a counter by 1 for a match type on the countMap. Uninitialized keys will be set to 1

* @param countMap the map that keeps track of counts

* @param key the key for the value to increment

*/

private void incOccurrence(Map<String, Integer> countMap, String key) {

countMap.putIfAbsent(key, 0);

countMap.put(key, countMap.get(key) + 1);

}


}

Answers