Как сделать два потока в Java?

Не могу решить проблему с сервером. Надо что бы Input и Output были в разных потоках, но как разделить их на два разных потока? Я пытался, но после их запуска получал вот это:
Exception in thread "Thread-1" Exception in thread "Thread-0" java.lang.NullPointerException
	at server.ServerInput.run(ServerInput.java:21)
	at java.lang.Thread.run(Thread.java:745)
java.lang.NullPointerException
	at server.ServerOutput.run(ServerOutput.java:20)
	at java.lang.Thread.run(Thread.java:745)

Вот код, который мне надо разделить на два потока. Помогите пожалуйста:
try {
			server = new ServerSocket(SettingsServer.getPort(), SettingsServer.getMaxUsers());
			while (true) {
				connect = server.accept();
				output = new ObjectOutputStream(connect.getOutputStream());
				input = new ObjectInputStream(connect.getInputStream());
				
				inObject = (String)input.readObject();
				
				if (inObject.equals("<html><table><tr><td>&&&$server_recd;</td></tr></center></html>") == true) {
					SettingsServer.CounterPlus();
				}
				
				if (inObject.equals("<html><table><tr><td>/server</td></tr></center></html>") == true) {
					SettingsServer.CounterPlus();
					sendData(SettingsServer.getInformation());
				}
				
				if (inObject != null && inObject.equals("<html><table><tr><td>&&&$server_recd;</td></tr></center></html>") == false && inObject.equals("<html><table><tr><td>/server</td></tr></center></html>") == false) {
					SettingsServer.CounterPlus();
					last_message.setText(inObject);
					sendData("&&&$client_recd;");
				}
				
				inObject = null;
				
			}
		} catch (UnknownHostException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		} catch (HeadlessException e) {
			e.printStackTrace();
		} catch (ClassNotFoundException e) {
			e.printStackTrace();
		}
  • Вопрос задан
  • 2687 просмотров
Пригласить эксперта
Ответы на вопрос 2
zolt85
@zolt85
Программист
А какую практическую задачу хотите решить?
Ответ написан
Комментировать
@ensiriuswOw
Плохой стиль программирования:
if (inObject.equals("<html><table><tr><td>/server</td></tr></center></html>") == true)

Хороший стиль программирования:
if (inObject.equals("<html><table><tr><td>/server</td></tr></center></html>"))


Код выглядит весьма сомнительно. Что вы пытаетесь сделать? Советую посмотреть в сторону Netty если вам важна производительность. По вашему коду понять в чем проблема нельзя.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
Bell Integrator Ульяновск
До 400 000 ₽
Bell Integrator Хабаровск
До 400 000 ₽
Bell Integrator Ижевск
До 400 000 ₽
23 апр. 2024, в 13:02
3000 руб./за проект
23 апр. 2024, в 12:52
15000 руб./за проект