线程在java编程中的作用

Python010

线程在java编程中的作用,第1张

线程在java编程中的作用可以实现多个任务同时进行。java创建线程的方式最常用的有两种。

1、第一种是创建Thread子类的一个实例并重写run方法,run方法会在调用start()方法之后被执行。例子如下:

public class MyThread extends Thread {

   public void run(){

     System.out.println("MyThread running")

   }

}

MyThread myThread = new MyThread()

myTread.start()

2、第二种编写线程执行代码的方式是新建一个实现了java.lang.Runnable接口的类的实例,实例中的方法可以被线程调用。下面给出例子:

public class MyRunnable implements Runnable {

   public void run(){

    System.out.println("MyRunnable running")

   }

}

Thread thread = new Thread(new MyRunnable())

thread.start()

java耗时操作为什么放子线程?

1. 线程和进程的概念

按照操作系统中的描述,线程是CPU调度的最小单元,同时线程是一种有限的系统资源。而进程一般指一个执行单元,在PC和移动设备上指一个程序或者一个应用。一个进程可以包含多个线程。

简单点理解,一个Android APP就是一个进程,一个APP里面有多个线程,我们多线程编程的意义就是实现“一个APP多个线程”。

有杠精可能会问,那我可不可以一个APP多个进程?又可不可以一个进程只有一个线程?

我告诉你,可以,都可以。

单线程的APP只包括Android的UI线程也是能运行的;一个APP多个进程也是可以达到的,实现方式涉及到Android的IPC机制,这里不细说。

2. 为什么要使用多线程?

这里杠精可能会说,那你单线程也能跑,我为啥还要整多线程?

我告诉你,首先这句话从Android开发的角度来讲,近似于一个假命题。因为谷歌爸爸现在强制规定了不能在UI线程进行耗时操作,必须放到子线程里面去,除非你的程序不涉及耗时操作。究其原因,是因为在UI线程进行耗时操作的话,给用户的使用体验就是界面“卡顿”。同时,如果UI线程被阻塞超过一定时间会触发ANR(Application Not Responding)错误。

从底层的角度来讲,多线程可以使得整个环境能够异步执行,这有助于防止浪费CPU时钟周期从而提高效率。换言之,多线程能更充分的利用CPU资源,从而提高程序的运行效率。