java中有哪些不同类型的池?

时间:2015-11-17 09:04:54

标签: java jndi

我在接受采访时被问到这个问题,我只能回答jndi并且不确定是否还有其他类似对象池,线程池。任何人都可以帮忙吗?

1 个答案:

答案 0 :(得分:1)

在计算机科学中,池是一组可以随时使用的资源,而不是在使用时获取并在之后发布。在此上下文中,资源可以引用系统资源,例如文件句柄,它们是进程外部的,或者是内部资源,例如对象(更多信息)。

在Java中有

  1. JDBC / JNDI连接池(有关详细信息see
  2. 线程池(有关详细信息,请参阅here
  3. 对象池设计模式(有关详细信息,请参阅here
  4. 内存池(可能适用于或不适用于Java)
  5. 扩展线程池你可以拥有

    java中有各种线程池:

    单线程执行程序:只有一个线程的线程池。因此,所有提交的任务将按顺序执行。方法:Executors.newSingleThreadExecutor()

    缓存线程池:一个线程池,它创建了以并行方式执行任务所需的线程数。旧的可用线程将重新用于新任务。如果在60秒内未使用某个线程,它将被终止并从池中删除。方法:Executors.newCachedThreadPool()

    固定线程池:具有固定线程数的线程池。如果某个线程不可用于该任务,则该任务将进入队列,等待其他任务结束。方法:Executors.newFixedThreadPool()

    预定线程池:用于安排未来任务的线程池。方法:Executors.newScheduledThreadPool()

    单线程预定池:只有一个线程的线程池,用于安排将来的任务。方法:Executors.newSingleThreadScheduledExecutor()

    内存池而言,我不完全确定执行内存分配(类似于malloc,calloc等)的垃圾收集和/或Java的其他功能是否使用内存游泳池与否。