我正在编写一个针对JAX-RS环境的小型库。我计划使用@Suspended AsyncResponse
进行服务器端利用。
public void writeFile(@Suspended AsyncResponse asyncResponse,
InputStream entity) {
// store entity to a temp file.
// distribute temp file to siblings.
for (URI sibling : siblings) {
// send temp file to sibling // i want to use thread.
}
}
我已经知道使用@Suspended AsyncResponse
可以提高吞吐量。我想使用线程来提高吞吐量。
我的问题是如何在JAX-RS中使用线程?是安全还是推荐?
一些示例显示刚刚启动一个新的Thread实例。一些示例显示使用Executor实例。
@Inject Executor executor; // Is this automatically injected?
public void writeFile(@Suspended AsyncResponse asyncResponse,
InputStream entity) {
// store entity to a temp file.
// distribute temp file to siblings.
for (URI sibling : siblings) {
// new Thread().start; // is this ok?
}
}