Android多线程编程
- 继承
Thread
开启子线程最简单的方式就是自定义一个类,继承自Thread
,并重写run()
方法,在其函数体中编写子线程的逻辑。
class ThreadTest:Thread() {
override fun run() {
super.run()
//在这里写子线程的逻辑
println("这是一个子线程!")
}
}
最后调用该类的start()
方法即可开启子线程。这里先调用其构造方法实例化,然后调用start()
方法。
ThreadTest().start()
- 实现接口:
Runnable
class ThreadTest2:Runnable{
override fun run() {
//在这里编写子线程的逻辑
println("这是一个子线程")
}
}
开启子线程的方式与上面类似,Thread()
的某个构造方法接收一个Runnaoble
对象,在这里将该ThreadTest2
传入即可。
Thread(ThreadTest2()).start()
- lambda表达式
直接将需要写的逻辑写在lambda表达式中即可,具体的调用方式如下:
Thread{
//在这里写子线程的逻辑
println("这是一个子线程")
}.start()
此外,kotlin中内置了一个顶层函数,是对上面方法的简化。此处无需调用start()
方法。
thread {
print("这是一个子线程")
}