JAVA. ЗАДАЧА 17.10.03+ ООП. СПИСАЛ.

package com.javarush.test.level17.lesson10.bonus03; /* Ресторан 1.Разберись, что делает программа. Официант почему-то не относит приготовленные блюда назад к столам :( 2.Исправь ошибку. Подсказка: это одна строчка */ import java.util.ArrayList; import java.util.List; public class Restaurant { public static List<Thread> threads = new ArrayList<>(); public static void main(String[] args) throws Exception { Waiter waiterTarget = new Waiter(); Thread waiter [...]

By | Октябрь 9th, 2016|Categories: Уровень 17|Tags: |0 Comments

JAVA. ЗАДАЧА 17.10.07. ТУПАЯ ЗАДАЧА НА СИНХРОНИЗАЦИЮ.

package com.javarush.test.level17.lesson10.home07; import java.util.HashMap; import java.util.Map; /* ApplicationContext ApplicationContext будет доступен множеству нитей. Сделать так, чтобы данные не терялись: подумай, какое ключевое слово необходимо поставить и где. */ public abstract class ApplicationContext<GenericsBean extends Bean> { private Map<String, GenericsBean> container = new HashMap<String, GenericsBean>(); //Map<Name, some class implemented Bean interface> protected ApplicationContext() { parseAllClassesAndInterfaces(); } public [...]

By | Октябрь 7th, 2016|Categories: Уровень 17|Tags: |0 Comments

JAVA. ЗАДАЧА 17.10.01. ЁБАНЬ РЕДКАЯ. ПРЕПАРИРОВАНИЕ КЛАССА LIST.

package com.javarush.test.level17.lesson10.home01; import java.util.*; /* Общий список 1. Изменить класс Solution так, чтобы он стал списком. (Необходимо реализовать интерфейс java.util.List). 2. Список Solution должен работать только с целыми числами Long. 3. Воспользуйтесь полем original. 4. Список будет использоваться нитями, поэтому позаботьтесь, чтобы все методы были синхронизированы. */ public class Solution implements List<Long> { private ArrayList<Long> [...]

By | Октябрь 7th, 2016|Categories: Уровень 17|Tags: |0 Comments

JAVA. ЗАДАЧА 17.10.06. СИНХРОНИЗАЦИЯ НА УРОВНЕ КЛАССА.

package com.javarush.test.level17.lesson10.home06; /* Глажка И снова быт... Поставьте один synchronized, чтобы diana и igor гладили по-очереди, ведь утюг всего один! Подсказка: использовать блокировку на уровне класса. */ public class Solution { public static void main(String[] args) { Person diana = new Person("Diana"); Person igor = new Person("Igor"); } public static class Person extends Thread { [...]

By | Октябрь 7th, 2016|Categories: Задачи, Полезные задачи, Уровень 17|Tags: |0 Comments

JAVA. ЗАДАЧА 17.10.09. ОЧЕНЬ ПОЛЕЗНАЯ ЗАДАЧА. МАССИВЫ. ЗАПИСЬ И УДАЛЕНИЕ ФАЙЛОВ.

ПРИНЯТОЕ РЕШЕНИЕ: package com.javarush.test.level17.lesson10.home09; import java.io.*; import java.util.*; /* Транзакционность Сделать метод joinData транзакционным, т.е. если произошел сбой, то данные не должны быть изменены. 1. Считать с консоли 2 имени файла 2. Считать построчно данные из файлов. Из первого файла - в allLines, из второго - в forRemoveLines В методе joinData: 3. Если список allLines [...]

JAVA. ЗАДАЧА 17.10.08. СИНХРОНИЗАЦИЯ.

package com.javarush.test.level17.lesson10.home08; /* Банкомат Разберись, как работает программа Во время тестирования лог содержит следующее: ..... Добавляем 100, на счету 1100 Добавляем 100, на счету 1200 Тратим 1000, на счету 100 Недостаточно денег ..... Создан баг: При списании денег со счета теряются деньги Найти и исправить ошибку */ public class Bankomat { static BankAccount account = [...]

By | Октябрь 4th, 2016|Categories: Уровень 17|Tags: |0 Comments

JAVA. ЗАДАЧА 17.10.10. СИНХРОНИЗАЦИЯ. ХРЕН ПОЙМИ.

package com.javarush.test.level17.lesson10.home10; /* Посчитаем 1. Сделай так, чтобы результат успел посчитаться для всех элементов массива values НЕ используя Thread.sleep 2. Исправь synchronized блок так, чтобы массив values заполнился значением 1 */ public class Solution { public static void main(String[] args) throws InterruptedException { Counter counter1 = new Counter(); Counter counter2 = new Counter(); Counter counter3 [...]

By | Октябрь 4th, 2016|Categories: Уровень 17|Tags: |0 Comments

JAVA. ЗАДАЧА 17.02.01. ПОТОКИ.

package com.javarush.test.level17.lesson02.task01; import java.util.ArrayList; import java.util.List; /* Заметки 1. Класс Note будет использоваться нитями. 2. Создай public static нить NoteThread (Runnable не является нитью), которая в методе run 1000 раз (index = 0-999) сделает следующие действия: 2.1. используя метод addNote добавит заметку с именем [getName() + "-Note" + index], например, при index=4 "Thread-0-Note4" 2.2. используя [...]

By | Сентябрь 26th, 2016|Categories: Уровень 17|Tags: |0 Comments

JAVA. ЗАДАЧА 17.06.02. VOLATILE.

package com.javarush.test.level17.lesson06.task02; /* Предложения Не используя synchronized сделайте так, чтобы количество сделанных и принятых предложений было одинаковым. */ public class Solution { public static volatile int proposal = 0; public static void main(String[] args) { new MakeProposal().start(); new AcceptProposal().start(); } public static class MakeProposal extends Thread { @Override public void run() { int thisProposal = [...]

By | Сентябрь 25th, 2016|Categories: Уровень 17|Tags: |0 Comments

JAVA. ЗАДАЧА 17.06.01. VOLATILE.

package com.javarush.test.level17.lesson06.task01; import java.util.ArrayList; import java.util.List; /* Заметки для всех Класс Note будет использоваться нитями. Поэтому сделай так, чтобы лист notes находился в общей памяти */ public class Solution { public static class Note { public volatile List<String> notes = new ArrayList<String>(); public void addNote(int index, String note) { System.out.println("Сейчас будет добавлена заметка [" + [...]

By | Сентябрь 25th, 2016|Categories: Уровень 17|Tags: |0 Comments