进程(Process):“正在执行的程序”,程序进入内存运行就变成了一个进程。一个进程会产生多个线程。
多线程(Multithread):一个进程中同时存在几个执行体。单线程是按照函数的顺序执行,多线程是多段代码同时交替运行。CPU的一个核,在某一时刻只能执行一个线程,CPU在多个线程之间快速地切换。
线程的调度:分时和抢占。分时调度是预先分配每个线程的时间。抢占式调度是按优先级。
多线程的实现——继承Thread类
public class MyThread extends Thread{ //继承自Thread类 public MyThread(String name) { //调用父类的构造方法 super(name); } public void run() { //重写run方法,线程需要执行的代码放在run方法内 for (int i = 0; i < 20; i++) { System.out.println(getName()+":正在执行!"+i);//Thread.currentThread().getName();获取当前线程对象的名称 } } }
public class Test { public static void main(String[] args) { MyThread mt = new MyThread("我的线程"); mt.start(); for (int i = 0; i < 20; i++) { System.out.println("主函数线程!"+i); } System.out.println("主函数执行结束了"); } }
由运行结果可知,两个线程的运行顺序由线程抢占到的CPU资源而定。
Thread.currentThread()获取当前线程对象
Thread.currentThread().getName();获取当前线程对象的名称
原文:https://www.cnblogs.com/zhai1997/p/11369562.html