进程:正在运行的程序
线程:进程中单个顺序控制流,是一条执行路径
单线程:一个进程中只有一条执行路径
多线程:一个进程中有多条执行路径
记事本属于单线程程序
扫雷属于多线程程序
实现多线程的方法:
方法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);
}
}
}
线程的生命周期: