Open In App

Thread Priority in Kotlin & Android

Last Updated : 25 Jun, 2020
Like Article

Every thread in a process has a Priority. They are in the range of 1 to 10. Threads are scheduled according to their priorities with the help of a Thread Scheduler.
There can be 3 priority constant set for a Thread which are:

  • MIN_PRIORITY which equals to 1
  • MAX_PRIORITY which equals to 10
  • NORM_PRIORITY which is a default value and equals to 5

Below is a code to check the priorities of two threads.

Checking the current priorities of Threads:

val t1 = Thread(Runnable{
    // Some Activity
    val t2
    = Thread(Runnable{
        // Some Activity
        println("${t1.priority} ${t2.priority}")

Output: 5 5

The output for both the threads are same as Default priority of a thread is 5.
Assigning new priorities to Threads:
Below the two threads are assigned different priorities.Thread t1 is assigned 1 and thread t2 is assigned 10. Since Thread t1 has more priority, it shall start first and the remaining threads according to the priority. The priority can be declared implicitly or explicitly.

val t1 = Thread(Runnable{
    // Some Activity
    val t2= Thread(Runnable{
        // Some Activity
    t1.priority= 1 
    t2.priority = 10
    println("${t1.priority} ${t2.priority}")

Output : 1 10

The same can be implemented in an Android application, below is an example.
Example in Android:
Try running the below program in Android to check the priorities of two threads declared within the code. When the user clicks the button, the thread with more priority starts.

package com.example.gfg
    import import android.os.Bundle import android.widget.Button import android.widget.TextView
    class MainActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?)
                val tv = findViewById<TextView>(
                val btn1= findViewById<Button>(
                val t1 = Thread(Runnable{
                tv.text = "t1 had more priority" })
                val t2= Thread(Runnable{
                tv.text = "t2 had more priority" })
                t1.priority= 1 
                t2.priority = 10
                t1.priority < t2.priority -> t1.start() t2.priority < t1.priority -> t2.start() else -> tv.text = 
                 "Both had same priority"
            btn1.isEnabled = false

The below XML code is for the Layout.

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android=""


Like Article
Suggest improvement
Share your thoughts in the comments

Similar Reads