进程:计算机执行的单元块,一个进程有多个线程。
线程:计算机最小执行的单元块
实现线程的两种方法:继承,重写
01-继承实现
public class Runa { public static void main(String[] args) { /*返回当前进程对象的方法*/ System.out.println(Thread.currentThread()); Threada a = new Threada(); Threadb b = new Threadb(); //把对象作为一个线程体 Thread tm = new Thread(a); Thread tn = new Thread(b); /*显示优先级。默认优先级为5*/ System.out.println("tm:"+tm.getPriority()+ "tn:"+tn.getPriority()); /*更改线程的优先级*/ tn.setPriority(1); tm.setPriority(10); /*更改线程的名字*/ tm.setName("tm"); System.out.println("tm:"+tm.getName()); tn.setName("tm"); System.out.println("tn:"+tn.getName()); tm.start(); tn.start(); /*之所以输出结果没按线程优先打印,是因为优先级这个东西一般在系统资源紧缺的情况下可能会比较明显。存在很大的随机性*/ } } class Threada extends Thread{ @Override public void run() { for(int i=1;i<10;i++){ System.out.println("a"+i); } } } class Threadb extends Thread{ @Override public void run() { for(int i=1;i<10;i++){ System.out.println("b"+i); } } }
02-重写实现
package day02; public class Runb { public static void main(String[] args) { Runm m = new Runm(); //把对象作为一个线程体 Thread tm = new Thread(m); tm.start(); } } class Runm implements Runnable{ @Override public void run() { for(int i=1;i<10;i++){ System.out.println("m"+i); } } }