进程:正在运行的程序
线程:进程中单个顺序控制流,是一条执行路径
单线程:一个进程中只有一条执行路径
多线程:一个进程中有多条执行路径
记事本属于单线程程序
扫雷属于多线程程序
实现多线程的方法:
方法1:
线程调度的优先级:
线程控制方法:
join方法 等待此线程结束,其他线程才开始
public class TestThread { public static void main(String[] args) { MyThread m1 = new MyThread("康熙"); MyThread m2 = new MyThread("四阿哥"); MyThread m3 = new MyThread("八阿哥"); m1.start(); try { m1.join(); } catch (InterruptedException e) { e.printStackTrace(); } m2.start(); m3.start(); } }
sleep 方法:
public class MyThread extends Thread{ public MyThread(){} public MyThread(String name){ super(name); } @Override public void run() { for(int i=0;i<100;i++){ System.out.println(getName()+":"+i); try { sleep(1000); } catch (InterruptedException e) { e.printStackTrace(); } } } }
setDaemon 设置守护线程:
public class TestThread { public static void main(String[] args) { MyThread m2 = new MyThread("关羽"); MyThread m3 = new MyThread("张飞"); Thread.currentThread().setName("刘备"); m2.setDaemon(true); m3.setDaemon(true); m2.start(); m3.start(); for(int i=0;i<10;i++){ System.out.println(Thread.currentThread().getName()+":"+i); } } }
线程的生命周期: