1.继承Thread类
2.实现Runnable接口
3.实现Callable接口
自定义类继承Thread类
重写run方法,编写线程执行体
创建线程对象,调用start()方法启动线程
ps:线程开启不一定立即执行,由cpu调度
public class TestThread extends Thread{ @Override public void run(){ for(int i=0;i<20;i++){ System.out.println("BBB"); } } public static void main(String[] args) { TestThread testThread = new TestThread(); testThread.start(); for(int i=0;i<200;i++){ System.out.println("AAA"); } } }
1.定义MyRunnable类实现Runnable接口
2.实现run方法,编写线程执行体
3.创建线程对象,调用start()方法启动
public class TestThread implements Runnable{ @Override public void run(){ for(int i=0;i<20;i++){ System.out.println("BBB"); } } public static void main(String[] args) { TestThread testThread = new TestThread(); new Thread(testThread).start(); for(int i=0;i<200;i++){ System.out.println("AAA"); } } }
多线程并发执行的时候,可能会对操作同一资源,造成资源混乱,也就是线程不安全问题。