gpt4 book ai didi

java - 多线程在java程序中具体场景的适用性

转载 作者:行者123 更新时间:2023-11-30 04:54:21 25 4
gpt4 key购买 nike

我对多线程的一般适用性感到困惑......

我正在创建一个应用程序,它执行一些以 xml 格式保存的代码。工作内容是使用apache http客户端,从网站中检索一些数据...xml中的一段代码可以访问多个网站...

现在我希望,如果 2 个用户创建了各自的代码并将其保存在 XML 中,则每个用户的“作业”(即 xml 格式的代码块)在单独的线程中运行。

我有代码来执行一个用户的代码...现在我希望多人的代码可以并行运行。但我有一些疑问——

(1) Apache HTTP 客户端提供了一种多线程通信的方式,目前我只是使用默认的 HTTP 客户端 - 可以使同一个客户端一个接一个地访问多个网站 - 根据 xml 中的代码块。我认为不需要更改代码即可使用推荐的多线程通信,这种想法是否正确?

(2) 我正在考虑创建一个 servlet,在调用时执行一个 xml 代码块。因此,要执行 2 个不同用户给出的 2 个代码块,我必须调用此 servlet 两次。我将使用 Amazon Elastic Beanstalk 部署此应用程序,所以我感到困惑的是,我是否需要在程序中使用多线程?我不能简单地从 servlet 调用现有代码(用于一次执行一个代码块)吗?而且我确实希望将不同的 XML 代码块的处理彼此分开,所以我认为我不应该在这里使用多线程。我的假设正确吗?

最佳答案

按照第一个选项依次运行它不会被视为“并发”。

来到servlet方法,你描述的方式可以并发工作,但是你还需要考虑有多少用户并发?由于对于每个用户来说,都会有一个单独的请求,因此多个调用会涉及一些网络延迟。在选择此选项之前,您需要考虑所有这些因素

由于您拥有一个用户的工作代码,因此您可以定义一个以 userid 作为属性的线程类。在 run() 方法中调用特定用户作业的代码。

现在创建两个线程并为每个线程设置适当的用户 ID 并生成它们。

如果用户数量较多,可以考虑使用Java的Thread Pool Executor。

关于java - 多线程在java程序中具体场景的适用性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9030418/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com