如何处理一个类中的多个线程?

2024-01-11

线程通常以两种方式设计(请参阅java教程 http://java.sun.com/docs/books/tutorial/essential/concurrency/runthread.html):通过扩展 Thread 类或通过实现 Runnable 类。无论哪种方式,您都需要指定线程内将运行的内容。

我设计了一个类,一个在线资源的适配器,用于检索不同类型的信息。此类由 getInformationOfTypeA() 和 getInformationOfTypeB() 等方法组成。两者都包含连接到在线资源的代码,因此两者都需要线程化以避免死锁。

问题是:我应该如何设计这个?我可以像下面这样做,但是我只能实现一种方法:

public class OnlineResourceAdapter implements Runnable {

  public void run() {
      //get stuff from resource
      getInformationOfTypeA();
  }

  public static void main(String args[]) {
      (new Thread(new OnlineResourceAdapter ())).start();
  }

  public void getInformationOfTypeA(){
      //get information of type A
  }

  public void getInformationOfTypeB(){
      //get information of type B
  }

}

另一种方法是为每个方法创建单独的类,但这对我来说似乎不自然。

顺便说一句:我正在 j2me 中开发我的应用程序

UPDATE:

感谢您的回复,我认为最适合使用如下方法:

你觉得这怎么样:

public class OnlineResourceAdapter{
    public void getInformationOfTypeA(){
        Thread t = new Thread(new Runnable() {           
            public void run() { 
                //do stuff here
            } 
        });
        t.start();
    }

    public void getInformationOfTypeB(){
        Thread t = new Thread(new Runnable() {           
            public void run() { 
                //do stuff here
            } 
        });
        t.start();
    }
}

你觉得这怎么样?


在我看来,你实际上应该有两个不同的课程:InformationOfTypeAFetcher and InformationOfTypeBFetcher,其中每一个都应该实现Runnable。他们每个人都可能引用您的一个实例OnlineResourceAdapter(或类似的东西)但如果他们做不同的事情,他们应该是不同的班级。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何处理一个类中的多个线程? 的相关文章

随机推荐

  • Sql Server CE是否支持MERGE语句

    我正在尝试运行MERGE查询针对Sql Server CE数据库 但它抛出错误 There was an error parsing the query 虽然相同的查询工作正常Sql Server is merge statement no
  • 循环遍历多个列并在 R 中为每个列绘制一个图?

    我有一个数据集 其中第一列是 年份 接下来的五十列是美国每个州的数据 我想在一个 pdf 中生成多个图 将每个 州 列与 年 列相匹配 即 1 和 2 1 和 3 1 和 50 我认为循环第 2 50 列将是一个很好的解决方案 但我无法让它
  • RESTful API 错误的最佳实践

    在 RESTful API 中返回 HTTP 状态代码的最佳实践是什么 我的 PHP 框架使用 Laravel 4 如果出现错误 我应该使用 return Response json User Exists 401 or 包括标志succe
  • 通过 mc.cores 与 makePSOCKcluster 设置核心?

    我想知道通过设置 R 使用的核心数有什么区别makePSOCKcluster并明确地在 foreach 循环中 我应该在这两种情况下单独设置它 还是在制作时这样做makePSOCKcluster enough cl lt makePSOCK
  • 了解 _.js 中下划线的声明吗?

    这是从一开始带注释的 js 来源 http documentcloud github io underscore docs underscore html 尽管我可以尝试 但我的 JavaScript 能力还不够高 无法理解这里发生的事情
  • Google Pubsub:不可用:该服务无法满足您的请求

    我正在使用 java 库从我的代码中订阅订阅 使用sbt com google cloud google cloud pubsub 0 24 0 beta 我按照本指南编写订阅者 https cloud google com pubsub
  • 是否可以集成 django-taggit 和 django-mptt / django-treebeard?

    我正在开发一个需要标记不同类型内容的网站 这有利于使用 django taggit 但是 如果标签以其自然层次结构在数据库中表示 这将非常有益 有利于使用 django mptt 或 django treebeard 将 taggit 的通
  • 将 UIToolbar 添加到某些文本字段的输入附件视图

    在我寻找我的第一个 iPhone 应用程序时 我发布了有关处理 iOS 键盘上的返回键的正确方法 现在我需要找出键盘上方的工具栏 其中包含上一个 下一个和完成按钮 我一直在使用以下网站的示例 输入配件视图 http gabriel tips
  • Flutter 从 Firebase 存储加载图像

    我看到有很多关于如何使用 flutter 将图像上传到 firebase 存储的示例 但没有实际下载 读取 显示已上传的图像 在Android中 我只是使用Glide要显示图像 我该如何在 Flutter 中执行此操作 我是否使用Netwo
  • 使用 Pandas 将 csv 转换为 Json

    我想使用 pandas 将 CSV 转换为 JSON 格式 我是一名测试人员 想要将一些事件发送到事件中心 因为我想要维护 CSV 文件并使用 CSV 文件更新我的记录 数据 我通过使用 pandas 读取 JSON 创建了一个 CSV 文
  • 将 Dropzone 中的文件添加到表单

    我想使用 Dropzone js 以便用户可以选择他想要上传的图像 但我不希望它们即时上传 而只是添加到表单中 然后以表单数组中的正常方式提交 我怎样才能做到这一点 我见过这样的问题如何让 Dropzone js 仅在单击提交按钮时上传文件
  • 在 SQLite 数据库中保存 ArrayList

    所以我想保存一组有序的双精度值 并且我希望能够轻松地插入 检索或删除其中的任何值 因此 我使用 ArrayList 在其中定义一个名为 Doubles 的类来存储双精度值 如何将此数组列表存储在 SQLite 数据库的记录中 我的意思是 列
  • 如何确定 Windows Java 安装位置

    我正在尝试从 C 程序集动态运行 jar 使用Process Start info 现在 我可以从控制台应用程序运行 ProcessStartInfo info new ProcessStartInfo java jar somerando
  • Debian Jessie 中的 Apache - 仍然收到消息您没有权限访问此服务器上的 /

    相同的虚拟配置我 apache wheezy 工作正常 例如 服务器名称 lgbs 服务器别名 www lgbs DocumentRoot home vdomain app web SetEnv APPLICATION ENV develo
  • Requests.get 显示的 HTML 与 Chrome 开发者工具不同

    我正在使用Python 特别是jupyter笔记本 开发一个网络抓取工具 它可以抓取一些房地产页面并保存价格 地址等数据 它对于我挑选的其中一个页面工作得很好 但是当我尝试抓取此页面时 sreality cz https www sreal
  • 按数字和字母顺序对带有字母的数字进行排序

    我的网站上有一个数据库 其中有一长串 产品 全部包含字母 例如 TC 345 TC 234 或 HC 236W 123 234 PWD 我们可以按数字和字母顺序对网站上的 进行排序吗 目前我们按字母顺序存储 因此顺序为 10 PDW 100
  • 正则表达式删除句子中包含数字的所有单词

    我尽力删除了句子中所有带有数字的单词 但仍然不成功 我什至尝试了以下正则表达式 regex s w 1 2 W s a zA Z0 9 d x preg replace regex x 我正在努力完成以下任务 包含数字和任何特殊字符 例如
  • Android、Windows Phone 7 和 Blackberry 的等效配置文件 (iOS)

    在 iOS 中 可以使用配置文件通过无线方式推送电子邮件 wifi 和 VPN 等的配置 有适用于 Android Windows Phone 7 和 Blackberry 的同等产品吗 链接到 iOS 的配置文件http develope
  • PhoneGap 与 jQuery Mobile 性能问题的常见来源有哪些?

    我有一个使用 PhoneGap 1 0 和 jQuery Mobile 1 0b2 编写的应用程序 在 iPhone 和 iPad 上运行 自从我开始使用该框架以来 我一直受到应用程序中 页面 之间切换的性能问题的困扰 按下按钮后 在转换发
  • 如何处理一个类中的多个线程?

    线程通常以两种方式设计 请参阅java教程 http java sun com docs books tutorial essential concurrency runthread html 通过扩展 Thread 类或通过实现 Runn