这是一个初学者问题:我正在开发一个使用 TCP 传递消息的小型聊天程序,我有一个简单的 GUI 来显示它,我已经完成了程序,但是 EDT 让我很困惑......
EDT 的行为是否像“扩展线程”一样?我想这是一个单线程,因为我需要工作线程来处理繁重的逻辑,但显然我不能做 Thread.sleep/yield (我有一个while 循环不断从输出流中读取消息并附加到 jTextArea,运行在main Thread中,我试图通过设置一个 false 标志来终止while 循环,然后屈服于main Thread,但没有奏效。)
我不太确定监听器是如何工作的,如果我必须编写它......我可能会为每个监听器启动一个线程,一旦我听到一些东西我就会处理它......但这绝对是错误的,因为它会使 EDT 成为多线程(很多耳朵),但在此过程中是单线程(只有 1 个大脑)
这一定是我缺乏知识!!因为在我的脑海中,我就是不知道如何触发一个事件……你按下了一个按钮,java突然知道了?我一定错过了什么。
我第一次发问题,希望清楚