Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/image/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Ghost4J本机库,用于将pdf转换为图像_Java_Image_Pdf_Ghostscript_Native Code - Fatal编程技术网

Java Ghost4J本机库,用于将pdf转换为图像

Java Ghost4J本机库,用于将pdf转换为图像,java,image,pdf,ghostscript,native-code,Java,Image,Pdf,Ghostscript,Native Code,我正在使用Ghost4J本机库32位和64位dll文件将我的PDF转换为图像。我需要将它与ThreadPoolExecutor(即多线程)一起使用,但由于它是本机的,所以它经常使我的JBoss崩溃 在我同步使用这个库之后,线程的性能就不好了。i、 e.对于4个线程和8个线程,其性能没有差异 有什么安全的方法可以做到这一点吗?您有没有尝试过ghost4j推荐的多线程方法: 多线程 确保重影脚本是线程安全的是第一步。但如果Ghost4J要在多线程/多用户环境中使用(例如在webapp中),该怎么办

我正在使用Ghost4J本机库32位和64位dll文件将我的PDF转换为图像。我需要将它与ThreadPoolExecutor(即多线程)一起使用,但由于它是本机的,所以它经常使我的JBoss崩溃

在我同步使用这个库之后,线程的性能就不好了。i、 e.对于4个线程和8个线程,其性能没有差异


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

您有没有尝试过ghost4j推荐的多线程方法:

多线程

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

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

为了克服这一限制,Ghost4J在其高级API组件上提供多线程支持(自版本0.4.0起)

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

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

为了确保可以从主JVM创建从属JVM,请检查是否可以使用Java命令从命令行启动Java

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

  • 当=0时:禁用多线程。组件必须等待Ghostscript解释器释放后才能开始处理

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

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

()

//create converter
PDFConverter converter = new PDFConverter();

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