Существуют ли в Java какие-либо классы, пригодные для использования в качестве «часов моделирования» в моделировании дискретных событий? - PullRequest
2 голосов
/ 11 февраля 2011

По сути, я ищу что-то, что моделирует часы и может быть увеличено на одну единицу времени путем вызова метода. Что-нибудь подобное можно найти в стандартной библиотеке Java? Или вам придется реализовать это самостоятельно?

Ответы [ 5 ]

3 голосов
/ 11 февраля 2011

А как насчет простого целого числа? - Может быть увеличено на единицу: counter++

Или java.util.concurent.atomic.AtomicInteger, если у вас несколько потоков. Это даже обеспечивает incrementAndGet() функцию.

2 голосов
/ 14 ноября 2011

Посмотрите на SimKit. Это механизм дискретных событий с открытым исходным кодом на основе Java. Это хорошо документировано, и вы можете извлечь часы и список событий и настроить их для своих собственных целей. Он хорошо поддерживается, поскольку используется для преподавания вводного курса по DES для аспирантов.

http://diana.nps.edu/Simkit/

1 голос
/ 19 февраля 2011

В зависимости от вашего варианта использования, посмотрите на следующее:

Простой :

int counter;  //counter++
long counter; //counter++ (If you expect the time to overflow int)

Изменяемый (org.apache.commons.lang.mutable. *):

MutableInt counter;  //counter.increment();
MutableLong counter; //counter.increment();

Threadsafe:

AtomicInteger counter; //counter.incrementAndGet();
AtomicLong counter;    //counter.incrementAndGet();
1 голос
/ 11 февраля 2011

Стандартный календарь / GregorianCalendar должен помочь вам.

0 голосов
/ 11 февраля 2011

Я не знаю о стандартном Java API, но посмотрите Кварц , прежде чем выпустить свой собственный

...