跳至主要內容
java线程池队列问题

问题:
Java线程池,5核心、10最大、20队列,第6个任务来了是什么状态?第26个任务来了是什么状态?队列满了以后执行队列的任务是从队列头 or 队尾取?
核心线程和非核心线程执行结束后,谁先执行队列里的任务?

在Java中,线程池的配置和行为由ThreadPoolExecutor类控制。根据你提供的参数,假设你创建了一个具有以下配置的线程池:

  • 核心线程数(corePoolSize):5
  • 最大线程数(maximumPoolSize):10
  • 任务队列容量(queue capacity):20

zheng大约 4 分钟java基础线程
线程相关的知识

一、线程之间的通信机制

在命令式编程中:线程之间的通信机制有两种:共享内存和消息传递。

1)在共享内存的并发模型里,线程之间共享程序的公共状态,线程之间通过写-读内存中的公共状态来隐式进行通信。

2)在消息传递的并发模型里,线程之间没有公共状态,线程之间必须通过明确的发送消息来显示进行通信。

Java的并发采用的是共享内存模型,Java线程之间的通信总是隐式进行,整个通信过程对程序员完全透明。

简单例子:

全局变量A,方法B和C都对A进行操作,B和C就可以利用A进行通讯。

zheng大约 5 分钟java基础线程