This site is currently read-only as we are migrating to Oracle Forums for an improved community experience. You will not be able to initiate activity until January 30th, when you will be able to use this site as normal.

    Forum Stats

  • 3,889,831 Users
  • 2,269,775 Discussions
  • 7,916,823 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