Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/369.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 避免RecursiveLockImpl01不公平。锁运行时异常(超时)?_Java_Processing_Jogl - Fatal编程技术网

Java 避免RecursiveLockImpl01不公平。锁运行时异常(超时)?

Java 避免RecursiveLockImpl01不公平。锁运行时异常(超时)?,java,processing,jogl,Java,Processing,Jogl,我有一个应用程序,在启动时加载一系列大型图像。这是一个应用程序,所以大多数东西都在单个主动画线程上运行,并且使用Processing的OpenGL渲染器 EDIT:当JOGL中的某个进程花费>5秒时,将引发RuntimeException。将其备份到后续的loadImage()调用意味着避免了运行时异常。我还不清楚如何重新编程,所以还没有找到解决方法,除了丑陋的try-catch+反射解决方法 映像加载有时需要5秒以上的时间,当它们加载时,JOGL会从recursiveLockImpl01Und

我有一个应用程序,在启动时加载一系列大型图像。这是一个应用程序,所以大多数东西都在单个主动画线程上运行,并且使用Processing的OpenGL渲染器

EDIT:当JOGL中的某个进程花费>5秒时,将引发RuntimeException。将其备份到后续的
loadImage()
调用意味着避免了运行时异常。我还不清楚如何重新编程,所以还没有找到解决方法,除了丑陋的try-catch+反射解决方法

映像加载有时需要5秒以上的时间,当它们加载时,JOGL会从
recursiveLockImpl01Underrish.lock()中抛出一个RuntimeException。我的理解是,
RecursiveLockImpl01Underrish.lock()
会在主GL动画线程停止执行>5秒时发出投诉

有没有简单的解决方法?我可以将映像加载转移到另一个线程,并重新调整我的init序列,使其更加异步,但对于只在应用程序init上发生一次的事情来说,这需要做大量的工作,而此时应用程序有足够的时间启动


(注意:这是为了安装,当应用程序在早上第一次启动时,没有人在场或试图使用它,因此在init上延迟数秒不是问题。)

您不能,因为处理不是多线程的。您可以使用纯Java编写一个多线程应用程序,该应用程序只利用处理作为绘图库,但如果您正在等待资源,请首先尝试处理提供的“异步”方法,例如requestImage(而不是loadImage),如果这些方法不起作用,这可能是纯java时代。在Processing wiki中有一个关于此的主题,但不确定这是否是您的案例。。。还有一个关于线程的问题:@Mike'Pomax'Kamermans忘记了
requestImage()
。这可能会奏效。