多线程
1、线程和进程的区别
①线程:是一个程序内部不同的执行路径,可以看成轻量级的进程,同一类线程共享代码和数据空间,每个线程有独立的运行栈和程序计数器(PC),线程切换开销小。
②进程:静态的,包含多个线程,每个进程都有独立的代码和数据空间,进程间的切换会有较大的开销。
2、创建线程的两种方式
①创建一个类继承Thread类
public class TestDemo { public static void main(String[] args) { ThreadDemo demo1=new ThreadDemo("线程A"); ThreadDemo demo2=new ThreadDemo("线程B"); demo1.start(); demo2.start(); } } class ThreadDemo extends Thread{ private String name; public ThreadDemo(String name){ this.name=name; } @Override public void run() { for(int i=0;i<10;i++){ System.out.println(name+"运行,i="+i); } } } |
②创建一个类实现Runnable接口
public class ThreadDemo02 { public static void main(String[] args) { MyThread myThread=new MyThread("线程A"); Thread thread=new Thread(myThread); thread.start(); new Thread(myThread).start(); } } class MyThread implements Runnable{ private String name; public MyThread(String name){ this.name=name; } public void run(){ for(int i=0;i<10;i++){ System.out.println(name+"运行,i="+i); } } } |
3、创建线程使用实现Runnable接口的好处
①可以避免由于单继承带来的局限性
②可以实现资源共享的目的
4、线程状态的切换