Пример потоков Potatopicker не работает должным образом с многопоточностьюJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Пример потоков Potatopicker не работает должным образом с многопоточностью

Сообщение Anonymous »

Код: Выделить всё

package pkgData;

public class Counter {
private static final int MAX_TIME = 1000;
private int counter = 0;

public Counter(int counter) {
this.counter = counter;
}

public int getCounter() {
return counter;
}

public synchronized void incCounter() {
try {
long duration = (long) (Math.random() * MAX_TIME);
System.out.println("---------counter: increase counter and do complicated calcultion for " + duration + " msec.");
int temp = counter;

Thread.sleep(duration);
counter = temp + 1;
System.out.println("---------counter: calculation done");
} catch (Exception e) {
System.err.println("counter..." + e.getMessage());
}
}
}

Код: Выделить всё

/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package pkgMain;

import java.util.ArrayList;
import java.util.concurrent.CyclicBarrier;

import pkgData.Counter;
import pkgSubjects.Worker;
import static pkgSubjects.Worker.NUMBER_OF_WORKERS_FOR_BIGBOX;

/**
*
* @author schueler
*/
public class Main {

/**
* simulation of potato - pickers who
* empties their baskets in big box
* and next 3 workers load big box on the truck
*
* @param args
*/

private static int NUMBER_OF_WORKERS = 5;
private static int DURATION_OF_SHIFT = 15000; //msec
private static Counter boxCounter;
private static ArrayList collWorkers = new ArrayList();
private static CyclicBarrier cl;

public static void main(String[] args) {
try {
startWorkers();
awaitEndOfShift();
stopWorkers();
printStatistics();
} catch (Exception e) {
e.printStackTrace();
}
}

private static void startWorkers() {
boxCounter = new Counter(0);
long shiftEndTime = System.currentTimeMillis() + DURATION_OF_SHIFT;
cl = new CyclicBarrier(NUMBER_OF_WORKERS_FOR_BIGBOX);

for (int i = 1; i 

Подробнее здесь: [url]https://stackoverflow.com/questions/79895960/threads-example-potatopicker-not-working-properly-with-multithreading[/url]
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»