Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.io.BufferedReader;
- import java.io.InputStreamReader;
- import java.util.HashSet;
- import java.util.concurrent.locks.Lock;
- import java.util.concurrent.locks.ReentrantLock;
- public class CountLetter {
- /**
- * Promenlivata koja treba da go sodrzi brojot na pojavuvanja na bukvata E
- */
- int count = 0;
- /**
- * TODO: definirajte gi potrebnite elementi za sinhronizacija
- */
- public static Lock lock;
- public void init() {
- lock = new ReentrantLock();
- }
- class Counter extends Thread {
- public void count(String data) {
- // da se implementira
- for (int i = 0; i < data.length(); i++) {
- {
- if (data.charAt(i) == 'e' || data.charAt(i) == 'E') {
- try {
- lock.lock();
- count++;
- } finally {
- lock.unlock();
- }
- }
- }
- }
- }
- private String data;
- public Counter(String data) {
- this.data = data;
- }
- @Override
- public void run() {
- try {
- count(data);
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
- }
- public static void main(String[] args) {
- try {
- CountLetter environment = new CountLetter();
- environment.start();
- } catch (Exception ex) {
- ex.printStackTrace();
- }
- }
- public void start() throws Exception {
- init();
- HashSet<Thread> threads = new HashSet<>();
- BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
- String pom = bf.readLine();
- String[] data = pom.split(" ");
- for (String datum : data) {
- Counter c = new Counter(datum);
- threads.add(c);
- }
- for (Thread t : threads) {
- t.start();
- }
- for (Thread t : threads) {
- t.join();
- }
- System.out.println(count);
- }
- }
Add Comment
Please, Sign In to add comment