文章分类 -  ART

摘要:互斥锁(排它锁、独占锁、写锁、X锁)和共享锁(读锁、S锁) 自旋锁共享锁(S锁):(读取)操作创建的锁。其他用户可以并发读取数据,但任何事务都不能获取数据上的排他锁,直到已释放所有共享锁。共享锁下其它用户可以并发读取,查询数据。但不能修改,增加,删除数据。资源共享。共享锁(S锁)又称为读锁,若事务T 阅读全文
posted @ 2015-10-30 09:48 牧 天 阅读(252) 评论(0) 推荐(0)
摘要:ReaderWriterMutex A ReaderWriterMutex is used to achieve mutual exclusion between threads, similar to a Mutex.Unlike a Mutex, a ReaderWriterMutex can 阅读全文
posted @ 2015-10-23 23:18 牧 天 阅读(542) 评论(0) 推荐(0)
摘要:bool Runtime::Init(const RuntimeOptions& raw_options, bool ignore_unrecognized) { .................. BlockSignals(); InitPlatformSignalHandlers(); // 阅读全文
posted @ 2015-10-22 22:54 牧 天 阅读(801) 评论(0) 推荐(0)
摘要:首先你必须知道pthread_cleanup_push与pthread_cleanup_pop的目的(作用)是什么。 比如thread1: 执行 pthread_mutex_lock(&mutex); //一些会阻塞程序运行的调用,比如套接字的accept,等待客户连接 sock = accept( 阅读全文
posted @ 2015-09-30 10:38 牧 天 阅读(233) 评论(0) 推荐(0)
摘要:linux下为了多线程同步,通常用到锁的概念。 posix下抽象了一个锁类型的结构:ptread_mutex_t。通过对该结构的操作,来判断资源是否可以访问。顾名思义,加锁(lock)后,别人就无法打开,只有当锁没有关闭(unlock)的时候才能访问资源。 它主要用如下5个函数进行操作。 1:pth 阅读全文
posted @ 2015-09-30 10:11 牧 天 阅读(3263) 评论(0) 推荐(0)
摘要:gdb在源码里面就有,路径:prebuilts/gcc/linux-x86/aarch64/aarch64-linux-android-4.9/bin/aarch64-linux-android-gdb Gdb (可以使用完整Romcode 目录中的gdb,也可以使用自己build的gdb)下面提供 阅读全文
posted @ 2015-09-29 16:40 牧 天 阅读(4045) 评论(0) 推荐(0)
摘要:#include #include void main() { sigset_t _set; sigemptyset(&_set); sigaddset(&_set, SIGINT); sigaddset(&_set, SIGQUIT); if (sigismembe... 阅读全文
posted @ 2015-09-28 11:06 牧 天 阅读(208) 评论(0) 推荐(0)
只有注册用户登录后才能阅读该文。
posted @ 2015-09-28 10:03 牧 天
摘要:实时信号之所以是可靠的,因为在进程阻塞该信号的时间内,发给该进程的所有实时信号会排队,而非实时信号则会合并为一个信号。 muhe221@muhe:~/code/6795CRC/art/runtime$ kill -l 1) SIGHUP 2) SIGINT 3) SIGQUIT 4) SIGILL 阅读全文
posted @ 2015-09-25 20:28 牧 天 阅读(787) 评论(0) 推荐(1)
摘要:art/runtime/fault_handler.cc FaultManager fault_manager; void FaultManager::Init() { CHECK(!initialized_); struct sigaction action; SetUpArtAction(&ac 阅读全文
posted @ 2015-09-24 21:37 牧 天
摘要:frameworks/base/core/java/com/android/internal/os/ZygoteInit.java public static void main(String argv[]) { //here is the zygote process try { RuntimeI 阅读全文
posted @ 2015-09-24 20:03 牧 天 阅读(506) 评论(0) 推荐(0)
摘要:1.-Xcheck:jni:用来启动JNI方法检查。我们在C/C++代码中,可以修改Java对象的成员变量或者调用Java对象的成员函数。加了-Xcheck:jni选项之后,就可以对要访问的Java对象的成员变量或者成员函数进行合法性检查,例如,检查类型是否匹配。我们可以通过dalvik.v... 阅读全文
posted @ 2015-08-22 21:03 牧 天 阅读(1419) 评论(0) 推荐(0)
摘要:定义编译器字节对齐方式gcc中,在某个变量x后使用“__attribute__((packed))”可以通知编译器保证字节对齐。在lwip中包是存储在结构体里,而结构体及其成员可能存在字节不对齐现象,32位/16位CPU不能正确读写这类数据,导致数据包操作错误。如下图:32位系统中,x为3字节,y为... 阅读全文
posted @ 2015-08-22 16:19 牧 天 阅读(247) 评论(0) 推荐(1)
摘要:JavaVMExt实例化的时候function = &gJniInvokeInterface 自动注册了很多函数 这个主要是提供虚拟机接口 struct JNIInvokeInterface { void* reserved0; void* reserved1; void* reserved2; j 阅读全文
posted @ 2015-08-21 00:15 牧 天 阅读(2035) 评论(0) 推荐(0)
摘要:左边是从链接器的视角来看ELF文件,开头的ELF Header描述了体系结构和操作系统等基本信息,并指出Section Header Table和Program Header Table在文件中的什么位置,Program Header Table在链接过程中用不到,所以是可有可无的,Section ... 阅读全文
posted @ 2015-08-13 09:32 牧 天 阅读(294) 评论(0) 推荐(0)
摘要:service zygote /system/bin/app_process -Xzygote /system/bin --zygote --start-system-server socket zygote stream 666 onrestart write /sys/android_power 阅读全文
posted @ 2015-08-11 13:55 牧 天 阅读(7317) 评论(0) 推荐(0)
只有注册用户登录后才能阅读该文。
posted @ 2015-08-07 17:13 牧 天 阅读(37) 评论(0) 推荐(0)
摘要:waitpid()是用在父进程中等待进程退出的,如果父进程不调用这个接口,那么它有可能先于子进程退出,那么子进程就会称为孤儿进程,继而被init进程(PID为1的进程,Linux启动后第一个启动的进程)收养。或者父进程并未退出,也未调用这个接口,但是子进程已经执行完成,那么子进程就会成为一个僵尸进程... 阅读全文
posted @ 2015-07-09 15:56 牧 天 阅读(570) 评论(0) 推荐(0)
摘要:解释执行:直接操作寄存器和cpu 编译速度很慢 执行很快 JIT:可以进行优化 都生成native代码,但是一般会有区别 java虚拟机执行字节码,执行的方式有两种:1.通过解释器将字节码解析为native code 这是java虚拟机执行字节码的方式对字节码查找对应的模板表,翻译成机器语言。响应速 阅读全文
posted @ 2015-07-09 15:43 牧 天 阅读(509) 评论(0) 推荐(0)
只有注册用户登录后才能阅读该文。
posted @ 2015-04-23 13:12 牧 天 阅读(27) 评论(0) 推荐(0)