何为多线程?在月一个程序当中可能在同一时间运行多个任务,这里的每一个任务都可以称为一个线程,再一起同时运行就是多线程了。例如:当我们去浏览一个网页的时候,在浏览网页的同时也还在加载网页,这就是多线程的体现。
java多线程编程最主要的核心接口和类为:Thread类、Runnable接口、Object类等,他们都在同一个包java.lang中。下面我们来看这些类:
Thread类:(常用到方法)
public void static().启动线程,然后调用Thread对象上的run方法。
public void run();如果Thread对象是使用单独的Runnable目标实例化的,那么run()方法是该Runnable对象调用的。如果我们编写的是继承Thread类的,那么通过对java的了解,我们可以知道继承后是需要重写父类中的方法。
public final void setName(String name) ; 改变Thread对象的名称,还有获得线程名称的getName()方法。改变线程名称,使之与参数 name
相同。
public final void setPriority(int newPriority); 更改线程的优先级。 参数newPriority是设置线程的优先级的,取值范围是1-10;最好的是用Thread.MAX_PRIORITY, Thread.MIN_PRIORITY,Thread. NORM_PRIORITY(分别是最高级10,最低级1和默认的5)。
下面我们来看看如何创建线程的:通过继承Thread类来创建线程
public class ThreadDemo { public static void main(String[] args) { Thread1 t1 = new Thread1();//创建Thread对象 t1.start();//启动线程 } } class Thread1 extends Thread {//创建Thread的子类 public void run() {//重写run方法 System.out.println("线程启动"); } }
创建多线程程序:
public class ThreadDemo { public static void main(String[] args) { Thread t1 = new Thread(new MyTask(),"线程A"); t1.start();//启动线程A Thread t2 = new Thread(new MyTask(),"线程B"); t2.start();//启动线程B } } class MyTask implements Runnable{ public void run(){ for(int i=0;i<5;i++){ //Thread.currentThread().getName()获取线程名字 System.out.println(Thread.currentThread().getName()+"i的值是:"+i); } } }