第一种
编写一个类,继承java.lang.Thread
public class test {
public static void main(String[] args) {
MyThread t=new MyThread();
t.start();
//这一步表示开辟了一个新的栈空间,运行新的线程,这行代码在空间分配出来瞬间就结束了
//线程启动成功就会自动调用run()方法
//run方法和main()方法地位相同,都是在栈的最底部
for(int i=0;i<10;i++) {
System.out.println("主线程"+i);
}
}
}
class MyThread extends Thread{
public void run() {
for (int i=0;i<10;i++) {
System.out.println("分支线程"+i);
}
}
}
执行的时候抢占CPU资源。
第二种:
新建一个类实现java.lang.Runnabel接口
然后new一个Thread对象,传入这个新建的类的对象,再调Thread方法
public class test {
public static void main(String[] args) {
Thread t=new Thread(new MyThread());
t.start();
//这一步表示开辟了一个新的栈空间,运行新的线程,这行代码在空间分配出来瞬间就结束了
//线程启动成功就会自动调用run()方法
//run方法和main()方法地位相同,都是在栈的最底部
for(int i=0;i<10;i++) {
System.out.println("主线程"+i);
}
}
}
class MyThread implements Runnable{
public void run() {
for (int i=0;i<10;i++) {
System.out.println("分支线程"+i);
}
}
}
第三种:
匿名内部类
Thread t=new Thread(new Runnable(){
public void run(){
}
});