C, PHP, VB, .NET

Дневникът на Филип Петров


Категория ‘ПИК3 Java’

* Consumer-Producer – едностранна синхронизация с много консуматори и един производител

Публикувано на 29 ноември 2013 в раздел ПИК3 Java.

В този пример има споделен ресурс – чиния с храна. За нея няма ограничение какво количество храна ще поеме, затова producer (в случая Human) ще я пълни още и още независимо дали е пълна или празна. Кучетата ще се редят едно след друго и ще чакат да се напълни чинията. Използва се централен mutex, с който кучето заявява пред човека, че търси "събуждане" (notify). Това се прави, за да се предотврати race condition, в който две кучета са събудени последователно и второто изяжда съдържанието на празна чиния (първото е изяло всичко, а човекът все още не е успял да сготви ново ястие). Освен това чинията вече е направена като обект, за да може да се синхронизира по него. По този начин се избягва race condition, при който човекът сготвя ястия в периода между пълненето на стомаха на кучето и нулирането на съдържанието на чинията. Прочети още...

.

 


* Consumer-Producer – двустранна синхронизация с един консуматор и един производител

Публикувано на 28 ноември 2013 в раздел ПИК3 Java.

В този пример има споделен ресурс – чиния с храна. За нея има ограничение какво количество храна ще поеме, затова producer (в случая Human) ще гледа дали в чинията има храна или няма. Ако има, той трябва да изчака кучето да се наяде. Ако няма, той ще сложи сготвеното в купичката. Кучето, което яде от чинията, от своя страна също ще гледа дали в купата има храна или не. Ако има храна, то ще я изяде. Ако няма, то ще изчака човека да го повика. Прочети още...

.

 


* Consumer-Producer – едностранна синхронизация с един консуматор и един производител

Публикувано на 28 ноември 2013 в раздел ПИК3 Java.

В този пример има споделен ресурс - чиния с храна. За нея няма ограничение какво количество храна ще поеме, затова producer (в случая Human) ще я пълни независимо дали е пълна или празна. Кучето, което яде от чинията, от своя страна ще гледа дали в купата има храна или не. Ако има храна, то ще я изяде. Ако няма, то ще изчака човека да го повика. Прочети още...

.

 


* Контролна работа 23.11.2013

Публикувано на 23 ноември 2013 в раздел ПИК3 Java.

В електронна игра има три вида герои – войни (warriors), стрелци (archers) и варвари (barbarians). Всеки от тях разполага с две основни сили: атака (attack) и защита (defence) – и двете цели числа (тип byte) – както и определено количество живот (health), отново цяло число (тип byte), което първоначално винаги заема максималната си стойност 127. Прочети още...

.

 


* Решение на вариант 1 от изпит 14.01.2013г.

Публикувано на 20 януари 2013 в раздел ПИК3 Java.

Тук ще дам едно възможно (не много прегледно написано) решение на вариант 1 от задачата за изпит. Условието гласеше следното: Прочети още...

.

 


* Въведение в Swing – рамки, бутони и менюта

Публикувано на 08 януари 2013 в раздел ПИК3 Java.

Swing е набор от пакети за изграждане на програми с графична среда на Java. Самият Swing е написан на езика Java, т.е. той е платформено независим. Част е от т.нар. "Java Foundation Classes". Ще демонстрираме работата със Swing чрез няколко елементарни примера.

1. JFrame

JFrame е основният "контейнер", който се използва, за да разполагаме други обекти в него. Можете да го приемете като празна рамка, в която ще се поставят други контроли. Характеризира се със заглавие (title) и размери (в пиксели). Следният код демонстрира създаването на една празна рамка: Прочети още...

.

 


* Четири нововъведения от Java 7

Публикувано на 21 ноември 2011 в раздел ПИК3 Java.

В един от последните примери, които пуснах в сайта, получих уместен коментар, в който се каза, че "Eclipse иска int или enum, a ние подаваме String" при използване на оператор "switch". Объркването се получава поради това, че подаването на String към оператор switch е едно от нововъведенията в Java 7!

Естествено нововъведенията са много повече, но на този етап ще акцентирам върху четири от основните: Прочети още...

.

 


* Задача от упражнение 5, 2011г.

Публикувано на 13 ноември 2011 в раздел ПИК3 Java.

Да се направят конзолни приложения за чат-сървър и чат-клиент.

Примерно решение: Прочети още...

.

 


* Задача от упражнение 3, 2011г.

Публикувано на 08 ноември 2011 в раздел ПИК3 Java.

Задача 1: Съставете клас за работа с комплексни числа. Да се съставят методи реализиращи операциите сбор, разлика, умножение и деление на комплексни числа. Реализирайте методи за отпечатване на комплексното число и за връщане на комплесно спрегнатото число.

Примерно решение: Прочети още...

.

 


* Пример за приложения използващи сокети

Публикувано на 31 октомври 2011 в раздел ПИК3 Java.

В представеното приложение е реализирана възможно най-базовата комуникация между клиент и сървър, при която се разменят поредица от текстови съобщения. Обърнете внимание, че не се използват нишки, т.е. за една "сесия" сървърът може да комуникира само с един клиент. Прочети още...

.