docs: improve leader/followers

This commit is contained in:
Ilkka Seppälä
2024-05-06 18:55:50 +03:00
parent c93f894814
commit 30cb9af12b
4 changed files with 146 additions and 88 deletions
@@ -24,29 +24,22 @@
*/
package com.iluwatar.leaderfollowers;
import lombok.Getter;
import lombok.Setter;
/**
* A unit of work to be processed by the Workers.
*/
public class Task {
@Getter
private final int time;
@Getter
@Setter
private boolean finished;
public Task(int time) {
this.time = time;
}
public int getTime() {
return time;
}
public void setFinished() {
this.finished = true;
}
public boolean isFinished() {
return this.finished;
}
}
@@ -39,7 +39,6 @@ public class TaskHandler {
var time = task.getTime();
Thread.sleep(time);
LOGGER.info("It takes " + time + " milliseconds to finish the task");
task.setFinished();
task.setFinished(true);
}
}
@@ -26,6 +26,7 @@ package com.iluwatar.leaderfollowers;
import java.util.List;
import java.util.concurrent.CopyOnWriteArrayList;
import lombok.Getter;
/**
* A WorkCenter contains a leader and a list of idle workers. The leader is responsible for
@@ -34,6 +35,7 @@ import java.util.concurrent.CopyOnWriteArrayList;
*/
public class WorkCenter {
@Getter
private Worker leader;
private final List<Worker> workers = new CopyOnWriteArrayList<>();
@@ -56,16 +58,12 @@ public class WorkCenter {
workers.remove(worker);
}
public Worker getLeader() {
return leader;
}
/**
* Promote a leader.
*/
public void promoteLeader() {
Worker leader = null;
if (workers.size() > 0) {
if (!workers.isEmpty()) {
leader = workers.get(0);
}
this.leader = leader;