从Java线程到kotlin协程之线程的基本使用
Posted XeonYu
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了从Java线程到kotlin协程之线程的基本使用相关的知识,希望对你有一定的参考价值。
了解完多线程的概念之后,我们先来看一下线程的基本使用。
Java线程的使用方式
Java中实现线程的方式有一下三种
- 继承Thread类,在子类实现run方法
- 实现Runable接口
- 实现Callable接口
我们先来简单看看Thread类
Thread类实现了Runnable接口
Runnable接口中只有一个run方法,实际上,线程的任务就是在run方法中执行的,也就是说我们实际开发过程中就是在run方法里写业务代码。
下面我们来看下三种方式的基本使用
方式一:继承Thread类
public class MyWorkThread extends Thread {
@Override
public void run() {
for (int i = 0; i < 100; i++) {
System.out.println(Thread.currentThread().getName() + "执行任务。。。" + i);
}
}
}
public class TestJava {
public static void main(String[] args) {
/*创建子线程*/
MyWorkThread myWorkThread = new MyWorkThread();
/*启动myWorkThread*/
myWorkThread.start();
/*主线程打印*/
for (int i = 0; i < 100; i++) {
System.out.println(Thread.currentThread().getName() + "执行任务。。。" + i);
}
}
}
运行结果如下:
一般我们不会使用这种方式去实现多线程,因为这种写法比较死板,定义好的线程只能实现固定的写好的任务。
方式二:实现Runable接口
package methord2;
public class MyRunnable implements Runnable {
@Override
public void run() {
for (int i = 0; i < 100; i++) {
System.out.println("MyRunnable" + i);
}
}
}
package methord2;
public class Test {
public static void main(String[] args) {
MyRunnable myRunnable = new MyRunnable();
Thread thread = new Thread(myRunnable);
thread.start();
for (int i = 0; i < 100; i++) {
System.out.println("main :" + i);
}
}
}
运行结果:
通过匿名内部类简化代码:
可以Thread构造接收的Runnable是个接口,那我们可以使用匿名内部类来简化一下代码,如下:
Thread thread = new Thread(new Runnable() {
@Override
public void run() {
for (int i = 0; i < 100; i++) {
System.out.println("Runnable" + i);
}
}
});
thread.start();
通过Lambda表达式简化代码
由于Runnable接口中只有一个方法,那我们还可以直接写成Lambda的方式,代码如下
Thread thread = new Thread(() -> {
for (int i = 0; i < 100; i++) {
System.out.println("Runnable" + i);
}
});
thread.start();
这样一来,相比方式一,代码就简洁很多了,而且更加灵活。
Kotlin的写法就更简单了,如下:
fun main() {
/*创建线程并启动*/
Thread {
for (i in 1..100) {
println("${Thread.currentThread().name}=========>${i}")
}
}.start()
/*主线程*/
for (i in 1..100) {
println("${Thread.currentThread().name}=========>${i}")
}
}
运行结果:
好了,本篇文章就是这样
如果你觉得本文对你有帮助,麻烦动动手指顶一下,可以帮助到更多的开发者,如果文中有什么错误的地方,还望指正,转载请注明转自喻志强的博客,谢谢!
以上是关于从Java线程到kotlin协程之线程的基本使用的主要内容,如果未能解决你的问题,请参考以下文章