A queue in which we can 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