📜  Kotlin和Android中的线程优先级

📅  最后修改于: 2021-08-24 08:19:57             🧑  作者: Mango

进程中的每个线程都有一个Priority 。它们的范围是1到10。在线程调度程序的帮助下,根据线程的优先级来调度线程
线程可以设置3个优先级常量,它们是:

  • MIN_PRIORITY,等于1
  • MAX_PRIORITY等于10
  • NORM_PRIORITY,它是默认值,等于5

下面是检查两个线程的优先级的代码。

检查线程的当前优先级:

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

两个线程的输出与线程的默认优先级为5相同。
为线程分配新的优先级:
在这两个线程的下方分配了不同的优先级。线程t1分配了1,线程t2分配了10。由于线程t1具有更高的优先级,因此它将首先启动,其余线程将根据优先级启动。可以隐式或显式声明优先级。

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

可以在Android应用程序中实现相同的功能,下面是一个示例。
Android中的示例:
尝试在Android中运行以下程序,以检查代码中声明的两个线程的优先级。当用户单击按钮时,将启动具有更高优先级的线程。

package com.example.gfg
  
    import androidx.appcompat.app.AppCompatActivity import android.os.Bundle import android.widget.Button import android.widget.TextView
  
    class MainActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?)
    {
        super.onCreate(savedInstanceState)
            setContentView(R.layout.activity_main)
  
                val tv = findViewById(R.id.tv)
                val btn1= findViewById

下面的XML代码用于布局。



  
    
  
  
    

输出

想要一个节奏更快,更具竞争性的环境来学习Android的基础知识吗?
单击此处前往由我们的专家精心策划的指南,以使您立即做好行业准备!