mirror of
https://github.com/tiennm99/java-design-patterns.git
synced 2026-09-07 18:17:09 +00:00
docs: improve leader/followers
This commit is contained in:
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user