背景
多线程:顾名思义,它就是指的多个线程同时存在,在Android开发中我们经常需要在一些子线程(非UI线程)中去处理一些耗时操作。对于线程还不太了解的小伙伴可以看一下你真的了解线程吗。OK,那么多线程到底有什么优缺点呢?
优点:
1)适当的提高程序的执行效率(多个线程同时执行)。
2)适当的提高了资源利用率(CPU、内存等)。
缺点:
1)占用一定的内存空间。
2)线程越多CPU的调度开销越大。
3)程序的复杂度会上升。
线程安全
synchronized
同步块大家都比较熟悉,通过 synchronized 关键字来实现;所有加上 synchronized 的方法和块语句,在多线程访问的时候,同一时刻只能有一个线程能够访问。对于synchronized的使用有很多技巧和细节,用在不同的位置,锁不一样的Object效果都不一样,大家可以自行上网查一下
wait()和sleep()的区别
sleep():在指定的毫秒数内让当前正在执行的线程休眠(暂停执行),该线程不丢失任何监视器的所属权,sleep() 是 Thread 类专属的静态方法,针对一个特定的线程。
wait() 方法使实体所处线程暂停执行,从而使对象进入等待状态,直到被 notify() 方法通知或者 wait() 的等待的时间