-5

是否可以在 HTTP 请求中发送 Java 线程实例?

4

1 回答 1

2

不可以。Java 线程不能被序列化,因此它不能被发送到最初创建它的 JVM 之外。

试想一下,将一个线程从一个 JVM 移动到另一个 JVM 会涉及什么。它可能引用的静态变量呢?它可能与之交互的其他线程呢?这个问题很棘手。)


实际上,我正在使用集群服务器,并希望在一台服务器(称为后台节点)上执行我的一些线程(定义的作业和其他繁重的任务)。那么有没有办法做到这一点。

好的,这是一个不同的问题。您实际上需要远程执行任务,而不是传递线程。('因为你不能传递线程。)

是的,有很多方法可以将任务发送到其他地方执行......在一般意义上。您需要做的是以某种方式(Java 对象序列化、JSON、XML 等)可以序列化的形式表达任务或任务描述,然后将序列形式传递给将要执行它的服务器。服务器将负责管理执行执行的线程。

警告:如果任务需要参考您制定任务的机器上的大量数据/对象,这将无法正常工作。这将涉及序列化/传递所有数据或找出某种方式让后端“回调”以获取任务所需的特定数据项。

于 2013-11-07T11:05:17.333 回答