首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在这个场景中实现线程?

如何在这个场景中实现线程?
EN

Stack Overflow用户
提问于 2012-03-21 23:05:44
回答 3查看 102关注 0票数 1

目前我还没有任何代码,但我遇到了将Java应用程序实现到无线传感器上的情况。只有一个主要的方法。

将有多个其他无线传感器可以连接到我的传感器。我的传感器需要根据其他传感器提供给我的信息进行计算。每个传感器都可以选择是否要参与计算。每1秒,我的传感器就计算一次。

因此,基本上,我需要的是监听传入的传感器,为它们提供一个可以交互的线程,并从每个传感器检索信息。

我的问题是,在我的应用程序中,我如何侦听传入的传感器(阻塞呼叫),以及如何释放我的应用程序来执行其计算?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-03-21 23:38:26

从高层次来看,这就是您的应用程序要做的事情。

==Main Thread==

complicated)

  • return启动套接字
  1. 开始处理线程
  2. 接受传入连接(这将导致线程阻塞直到连接发生)
  3. 启动新线程来处理套接字(处理程序线程)(或者使用线程池,但这更多地是到3

<代码>G 211

==Handler Thread==

thread

  • Finish

  • 从主线程接收打开的套接字,

  • 保存从套接字中输入的数据,用于处理

  • 和关闭套接字

==Processing Thread==

从Handler Thread

  • Return的步骤2到1

检索的

  1. 等待1

数据

票数 1
EN

Stack Overflow用户

发布于 2012-03-21 23:43:36

您需要另一个接收所有通信线程信息的线程。您应该查看java.util.concurrent中的实用程序,比如允许线程安全地将数据传递给另一个线程的BlockingQueue。

最重要的是,你应该读很多关于多线程的文章:它不是一个琐碎的话题。

票数 1
EN

Stack Overflow用户

发布于 2012-03-21 23:58:33

这会让你开始。根据需要添加错误/异常检查/处理。

代码语言:javascript
复制
public class Test { 
  static class WorkTask42 implements Runnable { 
    public void run() { 
       // background work            
    } 
  } 
  public static void main(String... args) throws Exception { 
    // repeat for each background task
    WorkTask42 wt = new WorkTask42();  
    Thread a = new Thread(wt);  
    a.setDeamon(true);
    a.start(); 
  } 
} 
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9814142

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档