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. используя метод removeNote удалит заметку
2.3. в качестве первого параметра в removeNote передай имя нити - метод getName()
*/
public class Solution {
public static void main(String[] args) {
Thread note = new NoteThread();
note.start();
}
public static class Note {
public static final List<String> notes = new ArrayList<>();
public static void addNote(String note) {
notes.add(0, note);
}
public static void removeNote(String threadName) {
String note = notes.remove(0);
if (note == null) {
System.out.println("Другая нить удалила нашу заметку");
} else if (!note.startsWith(threadName)) {
System.out.println("Нить [" + threadName + "] удалила чужую заметку [" + note + "]");
}
}
}
public static class NoteThread extends Thread
{
public void run() {
for (int i = 0; i < 1000; i++) {
String x = (this.getName() + "-Note" + i);
Note.addNote(x);
Note.removeNote(getName());
}
}
}
}
Leave A Comment