同时运行2个线程

lam*_*tat 3 java multithreading network-programming simultaneous-calls

在IM客户端的情况下.我已经做了2个单独的线程来处理发送数据包(通过std io)和接收数据包.问题是如何使这两个线程同时运行,以便我可以保持提示输入,同时随时准备接收数据包?

我已经尝试过设置定时器,但数据总是丢失接收.

jsi*_*ght 21

没有更多细节,很难给出完整的答案.不过,这是启动两个线程的代码:

Thread thread1 = new Thread () {
  public void run () {
    // ... your code here
  }
};
Thread thread2 = new Thread () {
  public void run () {
    // ... your code here
  }
};
thread1.start();
thread2.start();
Run Code Online (Sandbox Code Playgroud)


Cha*_*tin 7

好吧,除非你有一台多处理器计算机,否则它们不会同时运行,但这通常不是问题.将会发生的是,每个线程或多或少地会得到一些时间.

如果您正在丢失I/O,那可能不是线程是您真正的问题.你能告诉我们你是怎么读这些东西的吗?


Kar*_*rlP 7

我想你可能错过了Threads,Streams或两者都有重要意义:-)

你可以像这样开始一个新的线程:

myThread.start();

线程将被启动,run()方法将由jvm自动执行.

如果线程run-method正在从Stream读取,并且它是唯一一个读取,它将不会"遗漏"该流中的任何内容.