由DBUtils使用ResultHandler引出的一个关于JavaBean反射的问题
今天搭建服务器,使用DBUtils处理数据库的时候,出了个小问题:
今天搭建服务器,使用DBUtils处理数据库的时候,出了个小问题:
上一篇[zygote进程的启动]我们讲述了zygote进程的启动,以及循环等待client请求的过程。期间,有一段代码,开启了systemserver进程。 现在我们来看下systemserver到底是怎么起起来的。
从上一篇init的启动可以看到,zygote由init进程解析init.zygoteXXX.rc文件,然后fork进程,并为zygote进程创建了/dev/socket/zygote的socket接口,然后创建zygote进程,执行/system/bin/app_process,传入参数:-Xzygote /system/bin –zygote –start-system-server
在Linux系统中,Kernel启动完毕之后,启动的第一个用户空间的进程,就是名为init的进程:
以下是查找init进程源码的过程:
查找init进程mk文件位置:
查找可执行程序:init的编译MODULE定义,即全局查找字符串: LOCAL_MODULE:= init,从而找到mk文件位置system/core/init/Android.mk
epoll 于Linux 2.5.44引入,旨在替换select和poll系统函数。
相对于select和poll来说,epoll更加灵活高效:
Java中的可重入锁ReentrantLock很常见,可以用它来代替内置锁synchronized,ReentrantLock是语法级别的锁,所以比内置锁更加灵活。
ReentrantLock是Java并发包中互斥锁,它有公平锁和非公平锁两种实现方式,默认构造函数采用非公平锁的方式实现。