﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-&lt;font size=4&gt;天快黑了的日志&lt;/font&gt;-最新评论</title><link>http://www.blogjava.net/zhvfeng/CommentsRSS.aspx</link><description>&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;i&gt;分享知识、分享快乐&lt;/i&gt;</description><language>zh-cn</language><pubDate>Tue, 24 Aug 2010 09:50:13 GMT</pubDate><lastBuildDate>Tue, 24 Aug 2010 09:50:13 GMT</lastBuildDate><generator>cnblogs</generator><item><title>re: 谁能帮忙解释一下为什么这个程序会死锁？</title><link>http://www.blogjava.net/zhvfeng/archive/2010/08/07/327956.html#328186</link><dc:creator>天快黑了</dc:creator><author>天快黑了</author><pubDate>Sat, 07 Aug 2010 02:51:00 GMT</pubDate><guid>http://www.blogjava.net/zhvfeng/archive/2010/08/07/327956.html#328186</guid><description><![CDATA[感谢大家的回复，这个问题确实很难解释清楚。我们只能注意，多线程下千万不要使用非线程安全的对象。<img src ="http://www.blogjava.net/zhvfeng/aggbug/328186.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/zhvfeng/" target="_blank">天快黑了</a> 2010-08-07 10:51 <a href="http://www.blogjava.net/zhvfeng/archive/2010/08/07/327956.html#328186#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>re: 谁能帮忙解释一下为什么这个程序会死锁？</title><link>http://www.blogjava.net/zhvfeng/archive/2010/08/06/327956.html#328141</link><dc:creator>bigwesthorse</dc:creator><author>bigwesthorse</author><pubDate>Fri, 06 Aug 2010 08:16:00 GMT</pubDate><guid>http://www.blogjava.net/zhvfeng/archive/2010/08/06/327956.html#328141</guid><description><![CDATA[@猪儿笨笨<br>就是这个程序是否出现死锁要看rp的，跑个200多次才会出现一次<br>我用批处理连续跑了上千次，出现了好几次死锁的情况<img src ="http://www.blogjava.net/zhvfeng/aggbug/328141.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/zhvfeng/" target="_blank">bigwesthorse</a> 2010-08-06 16:16 <a href="http://www.blogjava.net/zhvfeng/archive/2010/08/06/327956.html#328141#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>re: 谁能帮忙解释一下为什么这个程序会死锁？</title><link>http://www.blogjava.net/zhvfeng/archive/2010/08/06/327956.html#328135</link><dc:creator>猪儿笨笨</dc:creator><author>猪儿笨笨</author><pubDate>Fri, 06 Aug 2010 07:36:00 GMT</pubDate><guid>http://www.blogjava.net/zhvfeng/archive/2010/08/06/327956.html#328135</guid><description><![CDATA[没有明白楼上说什么意思？<br>这样说吧，是否在一个JVM内，还是说同时启动多个JVM？<br>如果多个JVM，就很难说有什么问题，比如说用光了资源，等等。<img src ="http://www.blogjava.net/zhvfeng/aggbug/328135.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/zhvfeng/" target="_blank">猪儿笨笨</a> 2010-08-06 15:36 <a href="http://www.blogjava.net/zhvfeng/archive/2010/08/06/327956.html#328135#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>re: 谁能帮忙解释一下为什么这个程序会死锁？</title><link>http://www.blogjava.net/zhvfeng/archive/2010/08/06/327956.html#328097</link><dc:creator>bigwesthorse</dc:creator><author>bigwesthorse</author><pubDate>Fri, 06 Aug 2010 01:27:00 GMT</pubDate><guid>http://www.blogjava.net/zhvfeng/archive/2010/08/06/327956.html#328097</guid><description><![CDATA[@猪儿笨笨<br>对于concurrenthashmap<br>用一个批处理写1000多个start javaw TestLock<br>肯定会出现的，我说了概率很低，基本上两三百个程序会有个卡死<br>你就等着那个批处理狂跑就行了，1到2分钟之后，你就会感到cpu100%了<br>被某个进程霸占了，一直hang在那里<br><img src ="http://www.blogjava.net/zhvfeng/aggbug/328097.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/zhvfeng/" target="_blank">bigwesthorse</a> 2010-08-06 09:27 <a href="http://www.blogjava.net/zhvfeng/archive/2010/08/06/327956.html#328097#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>re: 谁能帮忙解释一下为什么这个程序会死锁？</title><link>http://www.blogjava.net/zhvfeng/archive/2010/08/05/327956.html#328079</link><dc:creator>猪儿笨笨</dc:creator><author>猪儿笨笨</author><pubDate>Thu, 05 Aug 2010 14:38:00 GMT</pubDate><guid>http://www.blogjava.net/zhvfeng/archive/2010/08/05/327956.html#328079</guid><description><![CDATA[用了concurrenthashmap，循环5000次，没有出现问题。<br><br>public TestLock() {<br><br><br>		for (int i = 0; i &lt; 5000; i++) {<br><br>			final int count=i;<br><br>			Thread t1 = new Thread() {<br>				public void run() {<br>					for (int i = 0; i &lt; 50000; i++) {<br>						map.put(new Integer(i), i);<br><br>					}<br>					System.out.println(count+&quot; over&quot;);<br>				}<br>			};<br><br>			t1.start();<br>		}<br>	}<img src ="http://www.blogjava.net/zhvfeng/aggbug/328079.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/zhvfeng/" target="_blank">猪儿笨笨</a> 2010-08-05 22:38 <a href="http://www.blogjava.net/zhvfeng/archive/2010/08/05/327956.html#328079#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>re: 谁能帮忙解释一下为什么这个程序会死锁？</title><link>http://www.blogjava.net/zhvfeng/archive/2010/08/05/327956.html#328076</link><dc:creator>猪儿笨笨</dc:creator><author>猪儿笨笨</author><pubDate>Thu, 05 Aug 2010 14:03:00 GMT</pubDate><guid>http://www.blogjava.net/zhvfeng/archive/2010/08/05/327956.html#328076</guid><description><![CDATA[另外，关于HashMap的实现，已经说了是线程不安全的，多线程下，出现问题是正常的。<br><br>Hashtable一直线程安全，可以放心用。<br>但说concurrenthashmap不对，这个应该不会。<br>回头也试一下再来讨论。<img src ="http://www.blogjava.net/zhvfeng/aggbug/328076.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/zhvfeng/" target="_blank">猪儿笨笨</a> 2010-08-05 22:03 <a href="http://www.blogjava.net/zhvfeng/archive/2010/08/05/327956.html#328076#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>re: 谁能帮忙解释一下为什么这个程序会死锁？</title><link>http://www.blogjava.net/zhvfeng/archive/2010/08/05/327956.html#328075</link><dc:creator>猪儿笨笨</dc:creator><author>猪儿笨笨</author><pubDate>Thu, 05 Aug 2010 14:01:00 GMT</pubDate><guid>http://www.blogjava.net/zhvfeng/archive/2010/08/05/327956.html#328075</guid><description><![CDATA[@天快黑了<br><br>这个很正常的，因为e.next相当于一个链表指针，指向下一个点，它们是同一个例的实类。<img src ="http://www.blogjava.net/zhvfeng/aggbug/328075.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/zhvfeng/" target="_blank">猪儿笨笨</a> 2010-08-05 22:01 <a href="http://www.blogjava.net/zhvfeng/archive/2010/08/05/327956.html#328075#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>re: 谁能帮忙解释一下为什么这个程序会死锁？</title><link>http://www.blogjava.net/zhvfeng/archive/2010/08/05/327956.html#328074</link><dc:creator>猪儿笨笨</dc:creator><author>猪儿笨笨</author><pubDate>Thu, 05 Aug 2010 14:00:00 GMT</pubDate><guid>http://www.blogjava.net/zhvfeng/archive/2010/08/05/327956.html#328074</guid><description><![CDATA[楼上的<br>不是e=e.next<br>而是e=e.next.next<br>不过你的分析应该是对的，就是在根据hashcode计算位置的时候，因为并发的原因出现问题了。<img src ="http://www.blogjava.net/zhvfeng/aggbug/328074.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/zhvfeng/" target="_blank">猪儿笨笨</a> 2010-08-05 22:00 <a href="http://www.blogjava.net/zhvfeng/archive/2010/08/05/327956.html#328074#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>re: 谁能帮忙解释一下为什么这个程序会死锁？[未登录]</title><link>http://www.blogjava.net/zhvfeng/archive/2010/08/05/327956.html#328067</link><dc:creator>kafka0102</dc:creator><author>kafka0102</author><pubDate>Thu, 05 Aug 2010 12:58:00 GMT</pubDate><guid>http://www.blogjava.net/zhvfeng/archive/2010/08/05/327956.html#328067</guid><description><![CDATA[死循环的代码在hashmap的transfer方法：<br>void transfer(final Entry[] newTable) {<br>    final Entry[] src = table;<br>    final int newCapacity = newTable.length;<br>    final long time1 = System.currentTimeMillis();<br>    for (int j = 0; j &lt; src.length; j++) {<br>      Entry&lt;K,V&gt; e = src[j];<br>      if (e != null) {<br>        src[j] = null;<br>        do {<br>          final Entry&lt;K,V&gt; next = e.next;<br>          final int i = indexFor(e.hash, newCapacity);<br>          e.next = newTable[i];<br>          newTable[i] = e;<br>          e = next;<br>        } while (e != null);<br>      }<br>    }<br>  }<br>我的分析是：死循环就在while中，对同一个旧table中的e，一个线程执行了 e.next = newTable[i];（还没到 e = next;），另一个才到 final Entry&lt;K,V&gt; next = e.next;，结果后到的线程接着执行e = next;造成e=e.next，死循环了。<br><img src ="http://www.blogjava.net/zhvfeng/aggbug/328067.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/zhvfeng/" target="_blank">kafka0102</a> 2010-08-05 20:58 <a href="http://www.blogjava.net/zhvfeng/archive/2010/08/05/327956.html#328067#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>re: 谁能帮忙解释一下为什么这个程序会死锁？</title><link>http://www.blogjava.net/zhvfeng/archive/2010/08/05/327956.html#328065</link><dc:creator>bigwesthorse</dc:creator><author>bigwesthorse</author><pubDate>Thu, 05 Aug 2010 11:13:00 GMT</pubDate><guid>http://www.blogjava.net/zhvfeng/archive/2010/08/05/327956.html#328065</guid><description><![CDATA[@bigwesthorse<br>只有hashtable可以顺利地通过1429个进程测试，哈哈，似乎看到了一点让人惊喜的东西<img src ="http://www.blogjava.net/zhvfeng/aggbug/328065.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/zhvfeng/" target="_blank">bigwesthorse</a> 2010-08-05 19:13 <a href="http://www.blogjava.net/zhvfeng/archive/2010/08/05/327956.html#328065#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>