java - 如何暂停其他正在进行的流读取器线程

标签 java swing network-programming thread-safety swingworker

举个例子,如果我尝试在服务器程序上构建一种文件传输机制,通过利用用户现有的连接套接字将一个文件字节从发送者 A 传输到用户 B,那么如何避免它与所有正在进行的聊天交错流传入,即除了在服务器端创建额外的服务器套接字之外,还要在这两个线程之间保持明确的等待和通知......

非常感谢 凯夫

最佳答案

为您的应用程序创建一个消息协议(protocol),以区分各种消息类型。然后创建一条“文件 block ”消息和一条“聊天”消息以及您需要的任何其他消息。

伪代码:

// sending method
public synchronized void send(Message msg) {
  // write message to socket ...
}

// receiving method
while(true) {
  Message msg = readMessage(); // read message from socket
  handleMessage(msg); // may want to push this work to another thread
}

关于java - 如何暂停其他正在进行的流读取器线程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13592453/

相关文章:

java - iOS 应用程序中的 JVM 可以运行 Android 应用程序吗?

java - 使用 Scoll_Tab_Layout 设置 JTabbedPane 中可见选项卡的数量?

java - 选择某些元素后使 Swing JMenuBar 树保持打开状态

networking - 应用程序挂起 DNS 查找是否有技术原因?

c++ - 在 C++ 程序中创建连接

java - 列出应用程序与之通信的 IP

java - 使用 Spring Security 进行 JWT 解码

java - 设计页面中的 GUI 和 RUN 时的 GUI 不同(Eclipse)

java - .png 图标未在 JFrame 窗口中加载

java - 用可用字体列表填充组合框,Java