实现多线程的两种方法

java语言中同一个进程的线程,堆内存和方法区内存共享,但是栈内存独立,每个栈之间互不干扰
进程之间的内存独立不共享
使用了多线程机制之后,main方法结束,主栈空了,但是其它栈可能还在运行

实现线程的方法:
1.编写一个类继承java.lang.Thread,重写run方法 创建线程对象调用start()方法启动线程
start()方法的作用是:启动一个分支线程,在jvm中开辟一个新的空间,这段代码任务完成之后,瞬间就结束了
这段代码的任务只是为了开启一个新的栈空间,只要新的栈空间开出来,start()方法就结束了,线程就启动成功了
启动成功的线程会自动调用run方法,并且run方法在分支的栈底部(压栈)
run方法在分支栈的栈底部,main方法在主栈的栈底部 run和main是平级的

2.编写一个类实现java.lang.Runnable接口 实现run方法
创建一个可运行的对象,将可运行的对象封装成一个线程,调用start()启动线程
Thread t = new Thread(Runnable r);
可以采用匿名内部类方式

推荐使用接口的方式,因为一个类实现了接口还可以继承其他类 java不支持多继承

posted @ 2020-08-09 19:34  javase-->  阅读(118)  评论(0)    收藏  举报