介绍:什么是线程,线程的优点是什么 线程在Unix系统下,通常被称为轻量级的进程,线程虽然不是进程,但却可以看作是Unix进程的表亲,同一进程中的多条线程将共享该进程中的全部系统资源,如虚拟地址空间,文件描述符和信号处理等等。但同一进程中的多个线程有各自的调用栈(call stack),自己的寄存器 ...
                            
                            
                                分类:
编程语言   时间:
2017-05-25 10:15:47   
                                阅读次数:
331
                             
                    
                        
                            
                            
                                    分析一下AbstractQueuedSynchronizer的state属性: ReentrantLock对象加锁时的部分调用栈: ReentrantLock/lock() -> NonfairSync/lock() -> AbstractQueuedSynchronizer/acquire() - ...
                            
                            
                                分类:
其他好文   时间:
2017-05-24 12:35:38   
                                阅读次数:
1813
                             
                    
                        
                            
                            
                                在理解this的绑定过程之前,我们先来理解调用位置(不是声明位置) ,最重要的是要分析调用栈(就是为了到达当前执行位置所调用的所有函数)。 我们关心的调用位置就在当前正在执行的函数的前一个调用中,例: 好了,调用位置我们已经找到了,然后我们来看看this绑定的四大规则 第一个规则:默认绑定(独立函数 ...
                            
                            
                                分类:
编程语言   时间:
2017-05-23 14:16:01   
                                阅读次数:
118
                             
                    
                        
                            
                            
                                    分解:将原问题划分成形式相同的子问题,规模可以不等,对半或2/3对1/3的划分。 解决:对于子问题的解决,很明显,采用的是递归求解的方式,如果子问题足够小了,就停止递归,直接求解。 合并:将子问题的解合并成原问题的解。 这里引出了一个如何求解子问题的问题,显然是采用递归调用栈的方式。因此,递归式与分 ...
                            
                            
                                分类:
其他好文   时间:
2017-05-14 13:54:42   
                                阅读次数:
228
                             
                    
                        
                            
                            
                                用GDB的bt命令很容易就能打印native的调用栈,如: 有时候我们想知道Native Crash时的java调用栈,这时候我们可以用gDvm中的数据来推导java栈。 我们知道gDvm中有一个threadList,它是一个线程链表,可以通过这个链表遍历当前进程中的所有线程。 用info thre ...
                            
                            
                                分类:
数据库   时间:
2017-05-14 12:12:59   
                                阅读次数:
317
                             
                    
                        
                            
                            
                                【打印调用栈】 【切换到调用栈的第n层】 【显示汇编代码】 【查看当前的寄存器值】 【显示当前进程的所有线程】 【切换线程】 【查看内存值】 【显示符号】 【若干配置】 set print pretty on :结构体显示的漂亮一些 set print union :设置显示结构体时,是否显式其内的 ...
                            
                            
                                分类:
数据库   时间:
2017-05-14 10:47:27   
                                阅读次数:
608
                             
                    
                        
                            
                            
                                【NE现场】 这个问题在多个机型上出现过且概率较高。 由于每次调用栈都一样,且都是system_server的InputRead线程Crash, 且每次都是系统启动的时,Input系统初始化的时候挂掉的。 【问题分析】 用gdb分析core: 查看源码,崩溃的地方是: 这里挂掉,要么是other值有 ...
                            
                            
                                分类:
其他好文   时间:
2017-05-13 23:21:14   
                                阅读次数:
482
                             
                    
                        
                            
                            
                                【问题描述】 第三方优质应用《拓词》打开就停止运行,不管是什么版本的系统和什么版本的拓词。 出现问题时,系统没有生成tombstone文件,只有main.log中有如下信息: 【分析步骤】 发现每次拓词crash时debuggerd进程也会一起crash,所以才不会生成调用栈。所以先得看看debug ...
                            
                            
                                分类:
其他好文   时间:
2017-05-13 22:12:22   
                                阅读次数:
397
                             
                    
                        
                            
                            
                                【NE现场】 从调用栈来看,是SignalCacher线程在打印其他线程的调用栈时出现异常。 【问题分析】 先通过addr2line工具确定出问题的代码: 看起来是shstrndx太大,数组访问越界导致的。而 shstrndx = ehdr.e_shstrndx 这个值是从elfheader中获取的 ...
                            
                            
                                分类:
Web程序   时间:
2017-05-13 12:33:39   
                                阅读次数:
625
                             
                    
                        
                            
                            
                                【NE现场】 栈的低地址边界上会留没有任何访问权限的一个页作( p属性)为保护页来监测代码中的栈溢出。 栈溢出问题,在代码中查找当前调用栈对应的代码里是否有大数组、递归等有隐患的代码,就能初步定位问题。 【初步分析】 从getIntMeasurements+163这个信息可以定位到当前PC其实是在0 ...
                            
                            
                                分类:
其他好文   时间:
2017-05-10 21:21:27   
                                阅读次数:
257