LinkedBlockingQueue和ArrayBlockingQueue区别和注意点

阿邹 等级 74 0 0

LinkedBlockingQueue和ArrayBlockingQueue 俩个使用注意 我们创建一个全局线程池的时候会传一个这样的类型进去,这里就需要注意下俩个的区别 通俗来说LinkedBlockingQueue会同步ArrayBlockingQueue 则是你的正常思维异步,所以前者也会更占用内存。使用时机你要自己注意了。 另外LinkedBlockingQueue它不会强制要求你传线程数,但是建议你一定要传,因为你不传默认就是无限,MAX,这样操作可能会导致你的内存溢出,后者则会强制要求你传递一个线程数。

    val ThreadPool = ThreadPoolExecutor(
            5, 100, 20, TimeUnit.SECONDS,
            ArrayBlockingQueue<Runnable>(100)
        )
预览图
收藏
评论区