java支持多线程机制。并且java已经将多线程实现了,我们只需要继承就行了。

第一种方式:编写一个类,直接继承java.lang.Thread,重写run方法
第二种方式:编写一个类,实现java.lang.Runnable接口,实现run方法
第一种:
public class MyThread extends Thread{
public void run()
}
创建线程对象
MyThread t=new MyThread();
启动线程:
t.start();
第二种:
public class MyThread implements Runnable{
public void run()
}
//创建线程对象
Thread t=new Thread(new MyRunnable());
//启动线程
t.start();
接下来是代码部分:
第一种方式:
package com.bjpowernode.javase.day27.Thread;
public class ThreadTest01 {
public static void main(String[] args) {
//这里是main方法,这里的代码属于主线程,在主线中运行
//新建一个分支线程对象
MyThread myThread=new MyThread();
//启动线程
/* myThread.run();*///不会启动线程,不会分配新的分支栈,这种方法就是单线程工作
//start()方法的作用是:启动一个分支线程,在jvm中开辟一个新的栈空间,这段代码任务完成之后,瞬间就结束了
//这段代码的任务只是为了开启一个新的栈空间,只要新的栈空间开出来,start()方法就结束了。线程就启动成功了
//启动成功的线程会自动调用run方法,并且run方法在分支栈的栈底部(压栈)
//run方法在分支栈的栈底部,main方法在主栈的栈底部。run和main是平级的
myThread.start();
for(int i=0;i<100;i++){
System.out.println("主线程--->"+i);
}
}
}
class MyThread extends Thread{
@Override
public void run() {
for(int i=0;i<1000;i++){
System.out.println("分支线程--->"+i);
}
}
}
第二种方式:
package com.bjpowernode.javase.day27.Thread;
/*第二种多线程方式:编写一个类,实现java.lang.Runnable接口.*/
public class ThreadTest02 {
public static void main(String[] args) {
//创建一个可运行的对象
MyRunnable r=new MyRunnable();
//将可运行的对象封装成一个线程对象
Thread thread=new Thread(r);
//启动线程
thread.start();
for(int i=0;i<1000;i++){
System.out.println("--->主线程"+i);
}
}
}
class MyRunnable implements Runnable{
@Override
public void run() {
for(int i=0;i<1000;i++){
System.out.println("--->分支线程"+i);
}
}
}

1798

被折叠的 条评论
为什么被折叠?



