多线程
时间:2020-04-13 09:46:08
收藏:0
阅读:54
多线程 1
代码:
/**
* 实现线程的第一种方式
* 创建线程对象:new即可
* 启动线程:调用线程对象的start方法
*/
public class TreadTest01 {
public static void main(String[] args) {
// 这里的代码属于主线程,在主栈中运行
// 新建一个分支线程对象
MyThread myThread = new MyThread();
// myThread.run(); //这行代码不会启动线程,不会分配新的分支栈(单线程),普通的方法调用
// 启动线程
// start 方法的作用:启动一个分支线程,在 JVM 中开辟一个新的栈空间
// 这段代码任务完成后瞬间就结束了,这段代码的任务只是为了开启一个新的栈空间,只要新的栈空间开出来,start方法就结束了,
// 线程也就启动成功了。启动成功的线程会自动调用run方法,且run方法在分支栈的栈底部(压栈)
// run方法在分支栈的地位类似于main方法在主栈的地位,run与main是平级的
myThread.start(); // 瞬间结束
// 从这里开始并发
// 这里的代码还是运行在主线程中
for (int i = 0; i < 5; i++) {
System.out.println("主线程---->" + i);
}
}
}
class MyThread extends Thread{
@Override
public void run() {
// 在这里编写程序,这里的程序运行在分支栈中
for (int i = 0; i < 10; i++) {
System.out.println("分支线程--->" + i);
}
}
}
运行结果:
分支线程--->0
主线程---->0
分支线程--->1
主线程---->1
分支线程--->2
主线程---->2
分支线程--->3
主线程---->3
分支线程--->4
主线程---->4
分支线程--->5
分支线程--->6
分支线程--->7
分支线程--->8
分支线程--->9
1.由上面的结果可以看出,有两个线程在并发!
2.主线程结束后,分支线程还在继续执行!
原文:https://www.cnblogs.com/yerun/p/12688848.html
评论(0)