Есть класс TestThread
который запускает класс Writer
который печатает сообщения и останавливается по нажатию клавиши Enter в консоли. В классе TestMain
вызывается метод main()
класса TestThread
, в нем же нужно смоделировать консольный ввод Enter (пустая строка или lineSeparator()
) через 2 секунды после запуска, чтобы остановить поток. Как мне заменить стандартный поток ввода, так чтобы можно было смоделировать это? Обязательно с помощью потоков.
public class TestThread {
Thread thread = new Writer();
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
TestThread testThread = new TestThread();
testThread.start();
while (true) {
if (in.nextLine().equals("")) {
testThread.end();
break;
}
}
}
public void start(){
thread.start();
}
public void end(){
thread.interrupt();
}
private class Writer extends Thread{
@Override
public void run() {
try {
while (!isInterrupted()) {
sleep(1000);
System.out.println("Something");
}
} catch (InterruptedException e) {
}
}
}
}
public class TestMain {
public static void main(String[] args) {
//вот тут нужно заменить поток ввода на наш, как я понимаю
//System.setIn(OUR_INPUT_STREAM);
Thread thread = new Thread(()->{TestThread.main(null); });
thread.start();
//а тут смоделировать нажатие Enter с задержкой
}
}
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Есть десяток андроидов, все подписаны на topic firebaseСообщения не содержат заголовка (notification) только date и не много
Есть класс в котором есть методВ методе инициализируется переменная String, ей присваивается ссылка