首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在简单的任务中使用线程有意义吗?

在简单的任务中使用线程有意义吗?
EN

Stack Overflow用户
提问于 2020-08-25 17:03:29
回答 2查看 53关注 0票数 0

我正在写一个软件,应该模拟一些飞机系统,除了飞行动力学,在VB.Net的娱乐飞行模拟器。

例如,程序员会根据可用的电源计算哪个模拟的‘断路器/继电器’应该断开或闭合,从而得到一个简短的函数,如:

代码语言:javascript
复制
If PwrSrc.avail = true and Breaker.hasFailed = false then

 Breaker.close 

End if

代码应该每X毫秒运行一次,但软件需要计算其他系统状态,如油,气动等。

为每个模拟系统运行线程是否有意义,或者使用单个线程会更快吗?

稍后将添加更多功能,系统将变得更加复杂,例如液压系统的压力值或电气系统的蓄电池发动机。首先,它应该只是一个非常基本的模拟。

如果在“第一”模拟步骤中某些数据对其他线程不可用/有效,这对我来说不是一个(巨大的)问题。与‘电动液压泵功率利用率’一样,是在第一个‘电气系统’-线程完成后设置的,并且不会是‘液压系统’-线程第一次运行的正确值,因为它可能会使用上一个模拟步骤中的数据。

EN

回答 2

Stack Overflow用户

发布于 2020-08-26 15:12:44

在这里,你可以使用多线程,也可以使用基于事件的方法来更好地利用资源。使用可观察对象,然后订阅这些事件,如油检查/和其他事件,如您在描述中提到的事件。基于事件创建一个线程,该线程将处理您的请求。使用线程池也可以更好地利用资源。线程没有确切的用例。如果您想将主线程的负载减少到其他线程,那么您可以很好地继续并实现它。但在深入讨论这些主题之前,先看一下以下几点:

  1. 我是否要在多个线程之间共享全局变量?然后需要尽可能地注意数据线程池。necessary.
  2. Dont在使用后忘记关闭资源的地方使用基于事件的东西,比如关闭线程池。
  3. 根据您的
  4. 设置线程池的大小,如no of cores * 2.
票数 0
EN

Stack Overflow用户

发布于 2020-08-26 16:03:32

从你的帖子中,我要说“不,使用线程来完成这些简单的任务是没有意义的”

使这个多线程会给程序增加一层显著的复杂性,而且你会把自己绑在结上(哈),让一切变得顺畅。

你本质上是在编写一个游戏,循环几个布尔值/改变一些UI元素的外观,你可以很容易地在一个“游戏循环”中每秒(数以万计)地做几千次。你不需要“让它更快”,因为它已经大大超过了人类使用它的性能。

如果您开始从事一些需要进行大量CPU或磁盘工作的工作,您可以利用基于任务的异步模式来保持响应,UI明智,这就消除了制作“明显的多线程”所涉及的大量复杂性

在某些时候,你可能会想跳到多线程,但我建议你先构建一些东西,然后运行它,只有当你确定存在一个只有多线程才能解决的固有问题时,才切换到多线程。这些东西很少,而且很可能您玩过的最复杂的游戏也不是真正的大规模多线程

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63575497

复制
相关文章

相似问题

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