I am using core pool size of 3 and queue size of 50 and max pool size of 500.
Suppose core pool and queue has threads as following
core pool = [A, B, C]
queue = [D, E, F]
Will the thread D execute only after one of the treads in core pool finishes execution? or
Can a running thread say B in core pool go in waiting state and thread D gets pulled into core pool?