﻿<?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-whitesock</title><link>http://www.blogjava.net/whitesock/</link><description /><language>zh-cn</language><lastBuildDate>Sun, 12 Apr 2026 07:54:02 GMT</lastBuildDate><pubDate>Sun, 12 Apr 2026 07:54:02 GMT</pubDate><ttl>60</ttl><item><title>Atomic Bit Operation in Linux Kernel</title><link>http://www.blogjava.net/whitesock/archive/2012/02/08/372392.html</link><dc:creator>whitesock</dc:creator><author>whitesock</author><pubDate>Tue, 07 Feb 2012 16:27:00 GMT</pubDate><guid>http://www.blogjava.net/whitesock/archive/2012/02/08/372392.html</guid><wfw:comment>http://www.blogjava.net/whitesock/comments/372392.html</wfw:comment><comments>http://www.blogjava.net/whitesock/archive/2012/02/08/372392.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/whitesock/comments/commentRss/372392.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/whitesock/services/trackbacks/372392.html</trackback:ping><description><![CDATA[<p>Linux Kernel支持atomic bit operation。一个有意思的问题是：为什么有必要保证位操作的原子性？原因在于它会确保每次操作一定生效。例如对某个位进行两次操作，分别是设置0和1，那么这两次操作都会被执行，而不会被优化成一次性设置1。这在概念上有点类似epoll的edge trigger 和 level trigger。此外在Java SE中，由于伪唤醒的存在，我们都会在一个循环里check condition和wait。但是在被唤醒和下次check的时间间隔内，condition可能再次发生变化，从而导致错过相应的事件。为了实现edge trigger，我们只能是自己实现一个versioned wait，貌似Java concurrent应该引入这样一种同步原语。</p><img src ="http://www.blogjava.net/whitesock/aggbug/372392.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/whitesock/" target="_blank">whitesock</a> 2012-02-08 00:27 <a href="http://www.blogjava.net/whitesock/archive/2012/02/08/372392.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>