JUC
- A lock (
java.util.concurrent.ReentrantLock
) is mostly the same as C/C++pthread_mutex_t
's, and Python'sthreading.RLock
in that it also implements a reentrant lock. Sharing locks between processes is harder in Java because of the JVM acting as an intermediary. If a thread tries to unlock a lock it doesn't own, anIllegalMonitorStateException
is thrown. - A mutex is the same as a lock (the term is not used often in Java).
- A semaphore (
java.util.concurrent.Semaphore
) is mostly the same assem_t
andthreading.Semaphore
. The constructor for Java semaphores accept a fairness boolean parameter that control whether to use a set (false) or a queue (true) for storing the waiting threads.
线程池的参数通常包括以下几个:
- 核心线程数(corePoolSize):线程池中最小的线程数量。当任务数量超过核心线程数时,线程池会创建新的线程来处理任务。
- 最大线程数(maximumPoolSize):线程池中最大的线程数量。当任务数量超过最大线程数时,线程池会根据设置的拒绝策略拒绝任务。
- 队列容量(workQueue):任务队列的容量,用于存储等待执行的任务。当任务数量超过核心线程数时,新任务会被放入任务队列中。
- 线程空闲时间(keepAliveTime):线程空闲的时间,超过这个时间,多余的线程会被回收。该参数只对超过核心线程数的线程生效。
- 线程工厂(threadFactory):用于创建新线程的工厂类。可以自定义线程的名称、优先级等属性。
- 拒绝策略(rejectedExecutionHandler):当任务数量超过最大线程数时,用于处理新的任务的拒绝策略。常见的拒绝策略有 AbortPolicy、CallerRunsPolicy、DiscardPolicy 和 DiscardOldestPolicy。
综上所述,线程池的参数主要是核心线程数、最大线程数、队列容量、线程空闲时间、线程工厂和拒绝策略。这些参数需要根据具体的业务场景和系统性能进行评估和调整,以达到最优的性能和资源利用率。
线程池是一种常见的并发编程技术,其优缺点如下:
优点:
- 提高系统性能:线程池可以通过复用线程、控制线程数量等方式提高系统的性能和响应速度。
- 降低系统开销:线程池可以避免频繁地创建和销毁线程,降低系统的开销和负担。
- 提高系统稳定性:线程池可以控制线程的并发数量和调度,避免因过多的线程导致系统崩溃或出现死锁等问题。
- 提高代码可读性:使用线程池可以将线程的创建和管理等操作封装在一起,提高代码的可读性和可维护性。
缺点:
- 需要额外的开销:线程池需要维护线程池的状态、队列、线程池的参数等,会产生额外的开销。
- 需要合理配置:线程池的性能和效果受到线程池的参数配置的影响,需要根据具体的业务场景和系统性能进行评估和调整。
- 可能会出现资源浪费:线程池中可能会出现一些线程处于等待状态或者空闲状态,导致系统中的资源浪费。
综上所述,线程池作为一种常见的并发编程技术,在提高系统性能、降低系统开销、提高系统稳定性和提高代码可读性方面都具有很大的优势。但是需要注意线程池的配置和使用,避免出现资源浪费和性能下降等问题。
线程池可以通过复用线程的方式提高系统的性能和响应速度。具体来说,当一个线程执行完任务后,线程池会将该线程放入线程池中,等待下一个任务的到来。如果有新任务到来,线程池会从线程池中选择一个空闲的线程来执行任务,而不是每次都创建一个新的线程。
这种方式可以减少线程的创建和销毁次数,避免了频繁创建和销毁线程的开销,同时也可以避免线程数量过多导致系统负担过重的问题。另外,线程池还可以根据具体的业务需求来控制线程数量、线程的优先级和调度方式,进一步提高系统的稳定性和性能。
需要注意的是,线程池的复用机制只适用于可重用的任务,对于一些只能执行一次的任务,如IO操作或网络请求,需要根据具体的业务需求来选择合适的线程池或线程创建方式。、
#你觉得今年春招回暖了吗#