Запуск 2 потоков одновременно - PullRequest
3 голосов
/ 20 апреля 2009

В случае IM-клиента. Я сделал 2 отдельных потока для обработки отправки пакетов (стандартными) и получения пакетов. Вопрос в том, как заставить эти 2 потока работать одновременно, чтобы я мог продолжать запрашивать ввод, и в то же время быть готовым к приему пакетов в любое время?

Я уже пытался установить таймер, но данные всегда теряются при получении.

Ответы [ 3 ]

20 голосов
/ 20 апреля 2009

Без подробностей сложно дать полный ответ. Тем не менее, вот код для запуска двух потоков:

Thread thread1 = new Thread () {
  public void run () {
    // ... your code here
  }
};
Thread thread2 = new Thread () {
  public void run () {
    // ... your code here
  }
};
thread1.start();
thread2.start();
7 голосов
/ 20 апреля 2009

Я думаю, вы, возможно, пропустили что-то существенное с Потоками, Потоками или обоими: -)

Вы можете начать новую тему, например:

myThread.start();

Поток будет запущен, а метод run () будет автоматически выполнен jvm.

Если метод выполнения потоков читает из потока, и это единственное чтение, он ничего не пропустит в этом потоке.

7 голосов
/ 20 апреля 2009

Ну, они не будут запускать одновременно , если у вас нет многопроцессорного компьютера, но обычно это не проблема. Что произойдет, так это то, что каждый поток получит часть времени, более или менее альтернативно.

Если вы теряете ввод-вывод, ваша проблема, вероятно, не в потоке. можешь рассказать нам, как ты читаешь эти вещи?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...