java耗时 *** 作为什么放子线程

java耗时 *** 作为什么放子线程,第1张

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资源,从而提高程序的运行效率。

第一种是以毫秒为单位计算的。

[java] view plain copy

//伪代码

long startTime=System.currentTimeMillis()   //获取开始时间

doSomeThing()  //测试的代码段

long endTime=System.currentTimeMillis() //获取结束时间

System.out.println("程序运行时间: "+(end-start)+"ms")

第二种是以纳秒为单位计算的。 

[java] view plain copy

//伪代码

long startTime=System.nanoTime()   //获取开始时间

doSomeThing()  //测试的代码段

long endTime=System.nanoTime() //获取结束时间

System.out.println("程序运行时间: "+(end-start)+"ns")

包含所需的包:  import java.lang.System


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/11120449.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-13
下一篇 2023-05-13

发表评论

登录后才能评论

评论列表(0条)

保存