<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>Comments on: Java 7 TransferQueue</title>
	<atom:link href="http://tech.puredanger.com/index.php/2009/02/28/java-7-transferqueue/feed/" rel="self" type="application/rss+xml" />
	<link>http://tech.puredanger.com/2009/02/28/java-7-transferqueue/</link>
	<description>Alex Miller&#039;s technical blog</description>
	<lastBuildDate>Mon, 06 Feb 2012 19:39:50 -0800</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1.4</generator>
	<item>
		<title>By: yongboy</title>
		<link>http://tech.puredanger.com/2009/02/28/java-7-transferqueue/comment-page-1/#comment-296109</link>
		<dc:creator>yongboy</dc:creator>
		<pubDate>Thu, 02 Feb 2012 04:27:22 +0000</pubDate>
		<guid isPermaLink="false">http://tech.puredanger.com/2009/02/28/java-7-transferqueue/#comment-296109</guid>
		<description>Hi, Alex:
Thanks for your response.
I understood wrong with the transfer method, with my test, your are right.
With some item already in the queue, when call the transfer method, the producer thread will wait util  the other items have been consumed.</description>
		<content:encoded><![CDATA[<p>Hi, Alex:<br />
Thanks for your response.<br />
I understood wrong with the transfer method, with my test, your are right.<br />
With some item already in the queue, when call the transfer method, the producer thread will wait util  the other items have been consumed.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Alex Miller</title>
		<link>http://tech.puredanger.com/2009/02/28/java-7-transferqueue/comment-page-1/#comment-296108</link>
		<dc:creator>Alex Miller</dc:creator>
		<pubDate>Wed, 01 Feb 2012 04:00:50 +0000</pubDate>
		<guid isPermaLink="false">http://tech.puredanger.com/2009/02/28/java-7-transferqueue/#comment-296108</guid>
		<description>@yongboy: I think it is correct as written.  If you are putting a new item in the queue, then it cannot be consumed until all of the other items already in the queue have been consumed (as that&#039;s the FIFO guarantee).</description>
		<content:encoded><![CDATA[<p>@yongboy: I think it is correct as written.  If you are putting a new item in the queue, then it cannot be consumed until all of the other items already in the queue have been consumed (as that&#8217;s the FIFO guarantee).</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: yongboy</title>
		<link>http://tech.puredanger.com/2009/02/28/java-7-transferqueue/comment-page-1/#comment-296107</link>
		<dc:creator>yongboy</dc:creator>
		<pubDate>Wed, 01 Feb 2012 03:18:47 +0000</pubDate>
		<guid isPermaLink="false">http://tech.puredanger.com/2009/02/28/java-7-transferqueue/#comment-296107</guid>
		<description>Hi, Alex:
Thanks for your post. I like it. But I wondered that if the line &quot;In the case where items are already in the queue, calling transfer will guarantee that all existing queue items will be processed before the transferred item&quot; is right ? maybe is &quot;after the transferred item&quot; ?</description>
		<content:encoded><![CDATA[<p>Hi, Alex:<br />
Thanks for your post. I like it. But I wondered that if the line &#8220;In the case where items are already in the queue, calling transfer will guarantee that all existing queue items will be processed before the transferred item&#8221; is right ? maybe is &#8220;after the transferred item&#8221; ?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Kirk</title>
		<link>http://tech.puredanger.com/2009/02/28/java-7-transferqueue/comment-page-1/#comment-149126</link>
		<dc:creator>Kirk</dc:creator>
		<pubDate>Wed, 04 Mar 2009 08:17:02 +0000</pubDate>
		<guid isPermaLink="false">http://tech.puredanger.com/2009/02/28/java-7-transferqueue/#comment-149126</guid>
		<description>Right, but with work-stealing/fork-join, the idea is to place the contended memory location on the left and the uncontended memory location on the right. Large chunks of work go to the left and small chunks to the right. Net result, uncontented end will never suffer from CAS failure while contended end shouldn&#039;t be visited that often. This implementation looks to be well tuned to support that use case but at the possible expense of others.</description>
		<content:encoded><![CDATA[<p>Right, but with work-stealing/fork-join, the idea is to place the contended memory location on the left and the uncontended memory location on the right. Large chunks of work go to the left and small chunks to the right. Net result, uncontented end will never suffer from CAS failure while contended end shouldn&#8217;t be visited that often. This implementation looks to be well tuned to support that use case but at the possible expense of others.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Alex</title>
		<link>http://tech.puredanger.com/2009/02/28/java-7-transferqueue/comment-page-1/#comment-148610</link>
		<dc:creator>Alex</dc:creator>
		<pubDate>Tue, 03 Mar 2009 02:35:13 +0000</pubDate>
		<guid isPermaLink="false">http://tech.puredanger.com/2009/02/28/java-7-transferqueue/#comment-148610</guid>
		<description>Well, I&#039;m no guru.  My understanding of the fork/join stuff is that it is more tuned for this use case of fine-grained parallelism of a large number of light-weight tasks, work-stealing, and all that. Sounds like a good question for Doug Lea in any case.</description>
		<content:encoded><![CDATA[<p>Well, I&#8217;m no guru.  My understanding of the fork/join stuff is that it is more tuned for this use case of fine-grained parallelism of a large number of light-weight tasks, work-stealing, and all that. Sounds like a good question for Doug Lea in any case.</p>
]]></content:encoded>
	</item>
</channel>
</rss>

