目录
一、前言
我们知道进程是系统的执行单位,一般一个应用程序即是一个进程,程序启动时系统默认有一个主线程,即是UI主线程。我们知道不能做耗时任务,否则ANR程序无响应。这时需要借助子线程实现,即多线程任务。线程是系统CPU的最小单位,用多线程其实就是为了更好的利用cpu的资源。
二、线程的常见方法
1、wait():使一个线程处于等待状态。
会释放持有的对象锁,进入等待此对象的锁定池(lock blocked pool ),直到针对此对象调用notify()/notifyAll()被唤醒,释放同步锁使线程回到可运行状态(Runnable)。
2、sleep():使一个线程处于睡眠(阻塞)状态。
调用此方法过程中线程不会释放对象锁。它会导致程序暂停执行指定的时间,让出cpu给其他线程,但是它仍然保持对Thread的监控状态,直到指定的时间结束后又会自动恢复可运行状态(Runnable)。
3、notify():使一个等待状态的线程唤醒。
注意:并不能确切唤醒等待状态线程,是由JVM决定且不按优先级。
4、allnotify():使所有等待状态的线程唤醒。<