摘要: 在Java语言中,创建线程并不像创建对象一样简单。虽然只需要使用new Thread()即可创建线程,但实际上创建线程比创建对象复杂得多。创建对象只需在JVM的堆中分配内存,而创建线程需要调用操作系统内核的API,并为线程分配一系列资源,这个成本相对较高。因此,线程被视为重量级的对象,应尽量避免频繁创建和销毁。 那么如何避免频繁创建线程呢?解决方案就是使用线程池。 由于线程池的需求非常普遍,所以Java SDK的并发包自然也包含了线程池。但是,很多人初次接触并发包中与线程池相关的工具类时,可能会感到有些困惑,不知从何入手。我认为,这主要是因为线程池与通常意义上的资源池是不同的。一般意义上的资源池在需要资源时调用acquire()方法申请资源,在使用完毕后调用release()释放资源。然而,如果你带着这种固有模型来看待并发包中的线程池相关工具类,会遗憾地发现它们与之不匹配,因为Java提供的线程池中根本不存在申请线程和释放线程的方法。 阅读全文
posted @ 2023-08-25 08:29 古道轻风 阅读(96) 评论(0) 推荐(0) 编辑