进程与线程

进程:正在运行的程序

线程:进程中单个顺序控制流,是一条执行路径

单线程:一个进程中只有一条执行路径

多线程:一个进程中有多条执行路径

记事本属于单线程程序

扫雷属于多线程程序

实现多线程的方法:

方法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);
        }
    }
}

线程的生命周期:

进程与线程

 

上一篇:【优化求解】基于matlab粒子群算法求解梯级水电站调度优化问题【含Matlab源码 065期】


下一篇:主轴转速S及主轴转向M3/M4必须在加工之前被指定