Домой Учебники по Java и J2EE Как создать синглтонский глобальный объект QUEUE — FIFO (первым пришел первым —...

Как создать синглтонский глобальный объект QUEUE — FIFO (первым пришел первым — вышел) в Java?

555
0

Что если вы хотите реализовать свой собственный класс Queue в Java ? Модуль очереди обеспечивает реализацию FIFO, подходящую для многопоточного программирования. Он может использоваться для безопасной передачи сообщений или других данных между потоками производителя и потребителя .

Посмотрите на этот сценарий:

  1. Создайте глобальный объект Singleton Queue из вашего проекта.
  2. Один процесс объекта может использовать этот объект Singleton для добавления строки в любой момент времени.
  3. В то же время другой процесс или объект используют тот же объект Singleton, чтобы получить то, что вы когда-либо нажимали 1-й в порядке FIFO. В основном реализуем объект Queue — поточно-ориентированную реализацию FIFO.

Ну, на прошлой неделе у меня было такое же требование для моего проекта. Итак, я создал один простой объект Queue в Java, который решил мою проблему выше. Хотел поделиться тем же с моими читателями ..

Вот проект Java:

Создать класс CrunchifyQueueInJava.java а также CrunchifyQueueTest.java

CrunchifyQueueInJava.java

Джава
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
пакет crunchify. ком . учебник ;
Импортировать Java. Util. LinkedList ;
Импортировать Java. Util. Очередь ;
/ **
* @author Crunchify.com
* Простая реализация очереди в Java
* /
общественности учебный класс CrunchifyQueueInJava {
статический Очередь очередь знак равно новый LinkedList ( ) ;
частный статический CrunchifyQueueInJava queueInstance знак равно ноль ;
общественности статический CrunchifyQueueInJava getStreamInstance ( ) {
если ( queueInstance == ноль ) {
queueInstance знак равно новый CrunchifyQueueInJava ( ) ;
}
вернуть queueInstance ;
}
общественности Очередь получить ( ) {
вернуть очередь ;
}
// Вставляет указанный элемент в эту очередь, если это возможно
// сразу, не нарушая ограничения по мощности
общественности недействительным добавить ( строка ценность ) {
синхронизированный ( очередь ) {
очереди. добавить ( значение ) ;
}
}
// Удаляет один экземпляр указанного элемента из этой коллекции
общественности недействительным удалить ( строка ценность ) {
синхронизированный ( очередь ) {
очереди. удалить ( значение ) ;
}
}
// Извлекает и удаляет заголовок этой очереди или возвращает ноль, если это
// очередь пуста
общественности строка опрос ( ) {
строка данные знак равно очереди. опрос ( ) ;
вернуть данные ;
}
// Возвращает true, если эта коллекция не содержит элементов
общественности логический isEmpty ( ) {
вернуть очереди. isEmpty ( ) ;
}
// Возвращает количество элементов в этой коллекции. Если эта коллекция
// содержит больше, чем элементы Integer.MAX_VALUE, возвращает Integer.MAX_VALUE
общественности ИНТ getTotalSize ( ) {
вернуть очереди. размер ( ) ;
}
}

Другой должен прочитать: реализация простого связанного списка в Java

Теперь давайте создадим образец тестового класса:

CrunchifyQueueTest.java

Джава
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
пакет crunchify. ком . учебник ;
/ **
* @author Crunchify.com
*
* /
общественности учебный класс CrunchifyQueueTest {
общественности статический недействительным главная ( Строка args [ ] ) {
CrunchifyQueueInJava crunchifyQueue знак равно CrunchifyQueueInJava . getStreamInstance ( ) ;
crunchifyQueue . добавить ( Crunchify ) ;
crunchifyQueue . добавить ( Google ) ;
crunchifyQueue . добавить ( «Yahoo» ) ;
crunchifyQueue . добавить ( Facebook ) ;
Система. вне. println ( «Начальная очередь:» + crunchifyQueue . get ( ) ) ;
crunchifyQueue . удалить ( Google ) ;
Система. вне. println ( «После удаления Google:» + crunchifyQueue . get ( ) ) ;
Система. вне. println ( totalSize: + crunchifyQueue . getTotalSize ( ) ) ;
Система. вне. println ( isEmpty (): + crunchifyQueue . isEmpty ( ) ) ;
Система. вне. println ( poll (): + crunchifyQueue . опрос ( ) ) ;
Система. вне. println ( «После опроса:» + crunchifyQueue . get ( ) ) ;
}
}

Результат:

Выход

1
2
3
4
5
6
Начальная очередь : [ Хруст , Google , Yahoo , Facebook ]
После удаления Google : [ Хруст , Yahoo , Facebook ]
totalSize : 3
isEmpty ( ) : ложный
опрос ( ) : Crunchify
После опроса : [ Yahoo , Facebook ]
Как создать синглтонский глобальный объект QUEUE — FIFO (первым пришел первым — вышел) в Java?

0.00 (0%) 0 votes

ЧИТАТЬ ТАКЖЕ:  Как создать проект Java, включая все зависимости, используя Maven? плагины maven-resources, maven-dependency и maven-jar

ОСТАВЬТЕ ОТВЕТ

Пожалуйста, введите ваш комментарий!
пожалуйста, введите ваше имя здесь