java线程

Java线程
     多线程是操作系统的重要组成部分,可以提高应用程序的效率,将耗时操作放进工作线程,可以提      高用户体验.

进程的特点:
 
 
     可以同时存在多个进程,这些进程会交替执行,且切换频率高,每次切换到某个进程时,该进程运行的时间比较随机。
     进程是若干个线程的集合,当进程运行时,真正运行的是进程中的线程。
     一个进程可以有多个线程,每个正在执行的进程中,都至少存在1个正在执行的线程。


     每个进程启动时,会默认开启1个线程,该线程通常称之为“主线程”。
     开发者可以在程序中自由的创建新的线程,并启动,这些新的线程通常称之为“子线程”,或者“工作线程”。



创建并启动线程

【方式1】
     1. 自定义类,继承自java.lang.Thread类
     2. 在自定义类中重写public void run()方法
     3. 当需要启动线程时,创建自定义类的对象,并调用该对象的start()方法
【方式2】
     1. 自定义类,实现java.lang.Runnable接口
     2. 在自定义类中重写public void run()方法
     3. 当需要启动线程时,创建自定义类的对象.
        然后,创建Thread类的对象,在创建Thread类对象时,将自定义类对象作为构造方法的参数.
        最后,调用Thread类对象的start()方法.



ANR

     ANR:Application Not Responding:应用程序无响应
     ANR是由于主线程执行任务消耗时间过长导致的。



Android中的UI线程模型

     UI:User Interface
     在Android系统中,主线程是用于初始化界面、响应用户在界面上的操作等等的,
所以,主线程也叫做UI线程。
     UI线程执行时间过长,则可能导致ANR!如果是在Activity中,则超过5s就可能出现ANR,
     如果是在BroadcastReceiver中,则超过10s就可能出现ANR。
     对于开发者而言,只要是消耗时间可能比较长的操作,都应该规避处理。
解决ANR问题的根本方法:把耗时操作放在子线程中运行!



在子线程中更新UI

     不允许在子线程中直接更新UI,否则应用程序将崩溃

解决方案:
     当需要在子线程中更新UI时,调用runOnUiThread()方法即可。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值