From 89b20721316f256994c3194b8dedb589ca6b7362 Mon Sep 17 00:00:00 2001 From: Zhang WH Date: Fri, 12 Nov 2021 01:46:24 +0800 Subject: [PATCH] fix: use double check to fix concurrent problem (#1909) Co-authored-by: zhangwenhe --- .../src/main/java/com/iluwatar/leaderfollowers/Worker.java | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/leader-followers/src/main/java/com/iluwatar/leaderfollowers/Worker.java b/leader-followers/src/main/java/com/iluwatar/leaderfollowers/Worker.java index 6c7caed24..21326bb0a 100644 --- a/leader-followers/src/main/java/com/iluwatar/leaderfollowers/Worker.java +++ b/leader-followers/src/main/java/com/iluwatar/leaderfollowers/Worker.java @@ -57,9 +57,11 @@ public class Worker implements Runnable { try { if (workCenter.getLeader() != null && !workCenter.getLeader().equals(this)) { synchronized (workCenter) { - workCenter.wait(); + if (workCenter.getLeader() != null && !workCenter.getLeader().equals(this)) { + workCenter.wait(); + continue; + } } - continue; } final Task task = taskSet.getTask(); synchronized (workCenter) {