摘要: Java集合框架中的Map类型的数据结构是非线程安全,在多线程环境中使用时需要手动进行线程同步。因此在java.util.concurrent包中提供了一个线程安全版本的Map类型数据结构:ConcurrentMap。本篇文章主要关注ConcurrentMap接口以及它的Hash版本的实现Concu... 阅读全文
posted @ 2014-08-08 14:55 梧留柒 阅读(2952) 评论(2) 推荐(1) 编辑
摘要: Condition接口应用场景:一个线程因为某个condition不满足被挂起,直到该Condition被满足了。类似与Object的wait/notify,因此Condition对象应该是被多线程共享的,需要使用锁保护其状态的一致性示例代码:class BoundedBuffer { fi... 阅读全文
posted @ 2014-07-10 15:42 梧留柒 阅读(4861) 评论(0) 推荐(0) 编辑
摘要: Aomic数据类型有四种类型:AomicBoolean,AomicInteger,AomicLong, 和AomicReferrence(针对Object的)以及它们的数组类型,还有一个特殊的AomicStampedReferrence,它不是AomicReferrence的子类,而是利用Aomic... 阅读全文
posted @ 2014-07-10 15:27 梧留柒 阅读(5040) 评论(1) 推荐(0) 编辑
摘要: 最近要在某个嵌入式Linux下使用libcurl这个库,该Linux的标准C库是uclibc,程序执行到curl_easy_perform总是会出现段错误。使用gdb调试之后发现是uclibc使用gethostbyaddr_r的时候会假设hosts文件存在(/etc/hosts或者/etc/config/hosts),但是恰好我们的Linux没有这个文件,这就导致无限循环(而且每次循环会动态分配2倍于上一次循环的内存来保存主机名称)这样循环到一定次数,就会出现内存地址越界。(参见uclibc的libc/inet/getaddrinfo.c Line 656)。 阅读全文
posted @ 2013-06-07 16:40 梧留柒 阅读(768) 评论(0) 推荐(0) 编辑
摘要: 准备花点时间阅读一下java.util.concurrent这个包里面的java代码,大致看了一下,这个包我个人觉得大致可以分为五个部分(如有不对之处,还望指正)第一部分 Aomic数据类型这部分都被放在java.util.concurrent.atomic这个包里面,实现了原子化操作的数据类型,包... 阅读全文
posted @ 2012-12-14 16:42 梧留柒 阅读(6456) 评论(3) 推荐(2) 编辑