Conversation
DanAnastasyev
left a comment
There was a problem hiding this comment.
У тебя куча бинарных файлов в репозиторий попало. Почисть их и настрой gitignore
ThreadPool/src/CustomQueue.java
Outdated
| @@ -0,0 +1,4 @@ | |||
| public interface CustomQueue<E> { | |||
There was a problem hiding this comment.
А зачем ты этот интерфейс создал, если потом не используешь никак?
ThreadPool/src/MyQueue.java
Outdated
| import java.util.LinkedList; | ||
| import java.util.Queue; | ||
|
|
||
| public class MyQueue<T> implements CustomQueue<T> { |
There was a problem hiding this comment.
MyQueue, конечно, очень говорящее название...
ThreadPool/src/MyQueue.java
Outdated
| import java.util.LinkedList; | ||
| import java.util.Queue; | ||
|
|
||
| public class MyQueue<T> implements CustomQueue<T> { |
There was a problem hiding this comment.
Вообще говоря, в java уже есть класс очереди, который умеет блокировать поток при отсутствии элементов
ThreadPool/src/MyQueue.java
Outdated
| @Override | ||
| public synchronized void enqueue(T task) { | ||
| queue.add(task); | ||
| // Wake up anyone waiting on the queue to put some item. |
There was a problem hiding this comment.
Неловко получилось, мда.
Давайте попробуем вычислить новизну кода. По моим подсчётам она (без учёта теста) составляет 11 строк (возможно, меньше). Остальные изменения являются добавленными пустыми строчками, переименованными переменными, либо переписанными комментариями.
Хватает ли 11 строк кода на то, чтобы зачесть задачу? Определённо, нет.
А за повторную попытку списывания я бы предложил запретить сдавать эту задачу. Что, кстати, довольно грустно с учётом того, что её решение является необходимым условием получения зачёта.
ThreadPool/src/ThreadPool.java
Outdated
|
|
||
| private final int threadPoolCapacity; | ||
| private MyQueue<Callable> myQueue = new MyQueue(); | ||
| private ArrayList<Thread> threads = new ArrayList(); |
There was a problem hiding this comment.
Старайся использовать интерфейсы, а не реализации:
private CustomQueue<Callable> myQueue = new MyQueue<>();
private List<Thread> threads = new ArrayList<>();Тогда бы появился глубинный смысл у создания интерфейса очереди
ThreadPool/src/ThreadPool.java
Outdated
| private ArrayList<Thread> threads = new ArrayList(); | ||
|
|
||
| private ThreadPool(int capacity) { | ||
| this.threadPoolCapacity = capacity; |
ThreadPool/src/Task.java
Outdated
| import java.util.concurrent.Callable; | ||
| import java.util.concurrent.TimeUnit; | ||
|
|
||
| public class Task implements Callable { |
There was a problem hiding this comment.
Кстати, в задании было про Runnable и реализацию определенного интерфейса
ThreadPool/src/ThreadPool.java
Outdated
| for (int i = 0; i < threadPoolCapacity; ++i) { | ||
| threads.get(i).interrupt(); | ||
| } | ||
| System.out.println("Good bye!"); |
There was a problem hiding this comment.
Не надо в System.out в таком классе писать. Мало ли как он использоваться будет
ThreadPool/src/Task.java
Outdated
| System.out.println("Начало задачи"); | ||
| TimeUnit.SECONDS.sleep(time); | ||
| System.out.println("Конец задачи"); | ||
| return null; |
ThreadPool/src/Task.java
Outdated
| } | ||
|
|
||
| @Override | ||
| public Object call() throws InterruptedException { |
There was a problem hiding this comment.
Правильнее было бы не throws InterruptedException, а обернуть sleep в try-catch
ThreadPool/src/MyQueue.java
Outdated
| @Override | ||
| public synchronized void enqueue(T task) { | ||
| queue.add(task); | ||
| // Wake up anyone waiting on the queue to put some item. |
There was a problem hiding this comment.
Хороший же коммент был, зачем стирать
ThreadPool/src/ThreadPool.java
Outdated
| int num = Integer.parseInt(i.toString());//args[0]); | ||
| int i = 3; | ||
| int num = i;//args[0]; | ||
| ThreadPool threadPool = new ThreadPool(num); |
There was a problem hiding this comment.
Будь смелее, пиши сразу ThreadPool threadPool = new ThreadPool(3);!
ThreadPool/src/ThreadPool.java
Outdated
| @@ -36,8 +36,8 @@ private void submitTask(Callable r) { | |||
|
|
|||
| public static void main(String... args) throws InterruptedException, ExecutionException { | |||
There was a problem hiding this comment.
Вообще говоря, обычно все пишут public static void main(String[] args). Не очень понимаю, откуда ты String... выкопал
No description provided.