繁体   English   中英

在多个线程中使用时,系统loadLibrary挂起

[英]system loadLibrary hangs when used in multiple threads

我正在尝试从Java应用程序中的线程中加载本机库,比如说每个线程Thread1,Thread2 ... ThreadN试图加载相同的共享库,但是在Thread1加载库后,其他线程在系统上被阻塞。调用LoadLibrary。 谁能帮我解决这个问题?

谢谢

使用同步和标志:

boolean isLoaded = false;
Object lock = new Object();

void loadLibs(){
    sinchronized(lock){
        if(!isLoaded) {
            //System.loadLibrary ...
            isLoaded = true;
        }
    }
}

否则,您可以使用带有静态构造函数的技巧,该构造函数保证仅被调用一次

static {
    //System.loadLibrary ...
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM