Esempi di sincronizzazione tra thread

This commit is contained in:
Fabio Scotto di Santolo
2020-05-10 11:53:01 +02:00
parent a80d64735b
commit 9b85eed528
9 changed files with 315 additions and 172 deletions

View File

@@ -0,0 +1,37 @@
package com.oracle.java8.professional.concurrency;
import java.util.concurrent.ThreadLocalRandom;
import java.util.logging.Level;
import java.util.logging.Logger;
public class Sender implements Runnable {
private Data data;
public Sender(Data data) {
this.data = data;
}
@Override
public void run() {
String packets[] = {
"First packet",
"Second packet",
"Third packet",
"Fourth packet",
"End"
};
for (String packet : packets) {
data.send(packet);
// Thread.sleep() to mimic heavy server-side processing
try {
Thread.sleep(ThreadLocalRandom.current().nextInt(1000, 5000));
} catch (InterruptedException e) {
Thread.currentThread().interrupt();
Logger.getAnonymousLogger().log(Level.SEVERE, "Interrupted error", e);
}
}
}
}