首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Ghost4J本机库,可将pdf转换为图像

Ghost4J本机库,可将pdf转换为图像
EN

Stack Overflow用户
提问于 2013-07-16 18:28:48
回答 1查看 1.6K关注 0票数 0

我正在使用Ghost4J本地库32位和64位动态链接库文件来转换我的PDF图像。我需要在ThreadPoolExecutor中使用它,也就是多线程,但是由于它是原生的,所以它经常使我的JBoss崩溃。

在我同步这个库的使用之后,线程不能很好地执行。也就是说,使用4个线程和8个线程,其性能没有差别。

有什么安全的方法可以做到这一点?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-07-16 20:24:09

你有没有尝试过ghost4j推荐的多线程技术:

Multi-threading

确保Ghostscript是线程安全的是第一步。但是,如果Ghost4J要在多线程/多用户环境中使用(例如在webapp中),该怎么办?

如果使用Ghost4J编写文档转换user应用程序,如果用户必须等待之前的用户请求完成,那么使用单个Ghostscript解释器可能是一个真正的问题。

为了克服这一限制,Ghost4J在其高级应用编程接口组件(从0.4.0版开始)上提供了多线程支持。

这怎么可能呢?:组件处理在不同的JVM中进行。

主JVM中的组件能够启动其他JVM(在其他系统进程中运行),并使用cajo库(嵌入在ghost4j JAR文件中)控制它们。

要确保可以从主JVM创建从JVM,请检查是否可以使用Java命令从命令行启动java。

可以通过设置组件的maxProcessCount属性(如果可用)来控制多线程行为:

  • When = 0:关闭多线程。组件必须等待Ghostscript解释器释放,然后才能开始处理。

  • When > 0:开启多线程。组件处理不会在主JVM中进行,而是在从JVM中进行。指定给maxProcessCount的值表示组件可以并发运行的从属JVM的数量。当达到从JVM的最大数量时,新的处理请求将等待另一个处理完成。

下面是如何设置PDFConverter组件以允许使用2个从JVM进行多线程:

代码语言:javascript
复制
//create converter
PDFConverter converter = new PDFConverter();

//set multi-threading
converter.setMaxProcessCount(2);

()

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

https://stackoverflow.com/questions/17674165

复制
相关文章

相似问题

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