多线程编程

  何为多线程?在月一个程序当中可能在同一时间运行多个任务,这里的每一个任务都可以称为一个线程,再一起同时运行就是多线程了。例如:当我们去浏览一个网页的时候,在浏览网页的同时也还在加载网页,这就是多线程的体现。

  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);
        }
    }
}
原文地址:https://www.cnblogs.com/gzyfj/p/4455919.html