摘要: 命题:怎么修复 Eclipse 里启动 Tomcat 时, 默认启动超时时间为 45 秒的问题?在 Eclipse 的J2EE 项目里启动 Tomcat 来调试 Servlet 之类的,断点以后,你会遇到 tomcat 启动 45秒 超时的问题,下面是解决这个问题的方法:首先找到这个文件,其中\yo...阅读全文
posted @ 2015-06-20 11:49 shines77 阅读(960) 评论(3) 编辑
摘要: 今天用 APK 反编译工具看了一下自己项目生成的 APK 文件,发现代码并没有混淆,于是设置了用 ProGuard 混淆代码,可是混淆是必须在非 Debug 模式才会生效的,即使你是以 Release 模式来 Run As 启动所生成的 APK 包,依然是没有使用 ProGuard 混淆的。于是决定导出一下 Release 版的 APK,导出分签名和不签名的,都这么做了,当然是要签名一下了,所以遇到了后面这两个问题。阅读全文
posted @ 2015-02-24 09:09 shines77 阅读(2062) 评论(3) 编辑
摘要: 要用 Eclipse 做 Android 开发,当装好了 ADT(Android Deveopment Tooling) 之后(可参考前一篇《[Android]Eclipse 安装 ADT[Android Development Tooling] 失败的两种解决办法》),接下来就会遇到 Android SDK Manager 无法正常更新的问题,因为 GFW 的关系,无法直接访问 https://dl-ssl.google.com,这个问题比更新 ADT 还要严重一点。我们在上一篇里通过设置代理 http://127.0.0.1:8087 转到 GoAgent 里来实现访问 ADT 的更新地址,在这里,我们遇到了一个新的问题,由于 GoAgent 从 3.1.x 版本开始,对于 https:// 或者 SSL 访问会出现这样一个错误:Error: [('SSL routines', 'SSL3_READ_BYTES', 'sslv3 alert certificate unknown')],从而导致无法正常更新 Android SDK Manager 。阅读全文
posted @ 2015-02-24 01:34 shines77 阅读(1075) 评论(6) 编辑
摘要: 最近想在新装的 Win7 里搭建一下 Android 的开发环境,虽然现在有 Android Studio 了,不过还是习惯 Eclipse 一点。众所周知的原因,Eclipse 直接安装 ADT(Android Develepment Tooling) 插件是不行的,这里给出两种解决办法,我们的前提是要先安装 Google 的 翻~@!墙工具 GoAgent 。阅读全文
posted @ 2015-02-14 20:09 shines77 阅读(564) 评论(0) 编辑
摘要: 这是第五篇的后续,紧接上一篇的末尾,我们把 Windows 和 Linux 下的休眠策略归纳总结一下。我们可以看到,Linux 下的 sched_yield() 虽然包括了 Windows 下的 Sleep(0) 和 SwitchToThread() 的部分功能(图中蓝色框和虚线框所标注的部分),但缺少了上图中两个灰色文字的功能。阅读全文
posted @ 2015-01-30 22:20 shines77 阅读(2454) 评论(8) 编辑
摘要: 由于我最近调整了一下 Jimi 的文件结构,导致出现了一个 LNK4042 的 warning,我并没有很重视,这个 warning 导致出现了一些错误。我调试了几个小时,一开始并没有想到是这个 warning 造成的,以为是我改代码改出来的问题(因为最近做了大量调整),特此记录一下。我在调整代...阅读全文
posted @ 2015-01-25 12:38 shines77 阅读(1876) 评论(0) 编辑
摘要: 这几天研究了一下 disruptor .Net版,由于.Net版跟进不及时,网上只有 v2.10 版。没仔细研究,但可以肯定的是跟最新的Java版 disruptor 3.30 是有不少区别的。我也用这个 2.10 的.Net版本写了跟我们的问题相似的测试程序,得到的结果跟 Java 版的 disruptor 3.30 差不多。我还下载了 C++ 版的,不过看了一下,就扔一旁了,一个原因是版本太低,另一个原因是动不动就 boost,动不动就C++11,我是崇尚轻便、依赖小的,真要用我还不如自己写一个,所以我也懒得用他们来测,我已经在着手把 disruptor 3.3 的原理搬到 C++ 上来。阅读全文
posted @ 2015-01-14 12:33 shines77 阅读(6869) 评论(27) 编辑
该文被密码保护。
posted @ 2015-01-09 05:38 shines77 阅读(211) 评论(4) 编辑
摘要: 上一篇分析了 Sinclair 的 q3.h 的原理,以及根据网友 korall 的提醒,我们可以看到,q3.h 的 push() 前半部分领号的过程是 lock-free 的,这里 lock-free(无锁) 的定义是指假如有一个线程在领号的过程中被无限休眠或崩溃(假设存在崩溃的可能性),也不会造成别的线程在领号的过程中因此而被阻塞。而 push() 的后半部分,即提交成功的确认过程,不是 lock-free 的,而是阻塞的。阅读全文
posted @ 2015-01-08 14:03 shines77 阅读(8054) 评论(9) 编辑
摘要: 无锁队列 第一篇文章末尾我们提到的《无锁队列的实现》(陈皓(hào)),该文末尾提到的“用数组实现无锁队列”,即用 RingBuffer 实现的无锁队列。阅读全文
posted @ 2015-01-05 09:41 shines77 阅读(8886) 评论(22) 编辑