程序是为完成特定任务、用某种语言编写的一组指令的集合。即指一段静态的代码,静态对象
进程是程序的一次执行过程,或正在运行的一个程序。是一个动态过程:有它自身的产生、生存和消亡的过程。—生命周期
线程是进程的进一步细化,是一个程序内部的一条执行路径
Java中的JVM允许程序运行多个线程,它通过java.lang.Thread
类来实现
Thread
对象的run()
方法来完成操作的,经常把run()
方法的主体称为线程体Thread
对象的start()
方法来启动这个线程,而非直接调用run()
Thread
类Thread
类的子类Thread
类的run()
,将此线程执行的操作申明在run()中
Thread
类的子类对象start()
来启动线程,并调用当前线程的run()
方法public class ThreadTest { public static void main(String[] args) { //3.实例化子类对象 MyThread t=new MyThread(); //4.线程启动 t.start(); //主线程执行语句 for(int i=0;i<100;i++){ if(i%2!=0){ System.out.println(i+"*****"); } } } } //1.创建一个继承于Thread的子类 class MyThread extends Thread{ //重写子类中的run方法 public void run(){ for(int i=0;i<100;i++){ if(i%2==0){ System.out.println(i); } } } }
Thread.currentThread().getName()
:获取当前线程的名称
run()
方法启动线程,此时仅仅是执行了对象的方法调用start
了的线程再次启动,需要再次创建一个新的线程对象MAX_PRIORITY
:10MIN_PRIORITY
:1NORM_PRIORITY
:5getPriority()
:返回线程优先级setPriority(int newPriority)
:改变线程的优先级Runnable
接口Runnable
接口的类Runnable
中的抽象方法run()
Thread
类的构造器中,创建Thread
类的对象Thread
类的对象调用start()
public class RunnableThreadTest { public static void main(String[] args) { //3.创建实现类对象 MThread t=new MThread(); //4.将实现类对象传入Thread类的构造器构建对应的Thread类对象 Thread h=new Thread(t); System.out.println(h.getName()); //5.通过Thread类对象.start()方法启动线程 h.start(); } } //1.创建类实现Runnable接口 class MThread implements Runnable{ //2.重写实现Runnable接口中的抽象方法 @Override public void run() { for(int i=0;i<100;i++){ System.out.println(i); } } }