进程中的每个线程都有一个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的基础知识吗?
单击此处前往由我们的专家精心策划的指南,以使您立即做好行业准备!