Toda thread do java tem uma prioridade que ajuda a determinar a ordem em que as mesmas serão agendadas. As prioridades do Java variam entre MIN_PRIORITY (uma constante de valor 1) até MAX_PRIORITY (uma constante de valor 10). Por padrão, toda thread criada recebe a prioridade NORM_PRIORITY (uma constante de valor 5).
A maioria dos sistemas operacionais suporta o fracionamento de tempo (timesharing), o que permite que as threads de igual prioridade compartilhem um processador. Sem o fracionamento de tempo, cada thread em um conjunto de threads de igual prioridade executa até a sua conclusão (a menos que ela deixe o estado executável e transite para o estado de espera ou espera cronometrada ou, ainda, seja interrompida por uma thread de prioridade mais alta) antes de outras threads de igual prioridade terem uma chance de executar.