1. A computer implemented method for scheduling threads in a data processing system having a multi-core processor, the computer implemented method comprising: selecting a first thread according to an order in a scheduling discipline, the first thread being a thread of an application executing in the data processing system, the first thread forming the leader thread in a bundle of threads; determining a value of a core attribute in a set of core attributes according to a corresponding thread attribute in a set of thread attributes associated with the leader thread; determining whether a second thread can be added to the bundle of threads such that the bundle including the second thread will satisfy a policy; adding, responsive to the determining being affirmative, the second thread to the bundle; and scheduling the bundle for execution using a core of the multi-core processor.