A queue in which we are able to insert remove items from any position based on some property (such as priority of the task to be processed) is often referred as priority queue.