Manacher算法是经典的算法,它的作用是给定一个字符串,返回str中最长回文字串的长度。
举例,str=”123”,其中的最长回文字串是”1”、”2”、”3”,所以返回1。
str=”abc1234321ab”,其中最长的回文字串为”1234321”,所以返回7。
Android9.0根activity启动流程分析
activity的启动流程
activity的启动过程分为两种,一种是根Activity的启动过程,另一种是普通Activity的启动过程。根activity的启动过程更复杂,也更具代表性,所以这里先分析根activity的启动过程。根activity的启动分为三部分:Launcher启请求AMS(ActivityManagerService)过程、AMS到ApplicationThread的调用过程以及ActivityThread启动Activity的过程。可以在这个网站在线看9.0.0_r3源码。
1,Launcher请求AMS过程
java锁介绍:独享锁/共享锁+公平锁/非公平锁+乐观锁/ 悲观锁
该文转载于java锁介绍:独享锁/共享锁+公平锁/非公平锁+乐观锁/ 悲观锁
在Java并发场景中,会涉及到各种各样的锁,比如:高并发编程系列:4种常用Java线程锁的特点,性能比较、使用场景,这些锁有对应的种类:公平锁,乐观锁,悲观锁等等,这篇文章来详细介绍各种锁的分类:
- 公平锁/非公平锁
- 可重入锁
- 独享锁/共享锁
- 分段锁
- 自旋锁