http://www.parallellabs.com/2010/04/15/atomic-operation-in-multithreaded-application/
请多多指教!
--
Guancheng Chen
Blog: http://www.parallellabs.com
Twitter: @guancheng
这个非常的不现实,所谓原子操作的代价是很大的,对SMP系统性能的影响很大,如果语言来处理这个,那这个语言在多核系统上性能会很糟糕。
>
> 2010/4/16 woo <woos...@gmail.com>
>>
>> 挺好的,顶一下
>> 随便说一下,个人以为原子操作应该是语言本身应该提供的feature,而不是用库来实现的
>> 这点C/C++都做得很失败,让我们码工不能把精力集中在代码实现上,反而要搞一些小trick来处理各种同步的问题
>> 看看C/C++里面各种各样实现的lock-free ....
>>
>> On 14:54 Thu 15 Apr , Guancheng Chen wrote:
>> > 在多线程程序中原子操作是一个非常重要的概念,它常常用来实现一些同步机制,同时也是一些常见的多线程Bug的源头。本文主要讨论了三个问题:1. 多
>> > 线程程序中对变量的读写操作是否是原子的?2. 多线程程序中对Bit field(位域)的读写操作是否是线程安全的?3. 程序员该如何使用原子操
>> > 作?
>> >
>> >
>> > http://www.parallellabs.com/2010/04/15/atomic-operation-in-multithreaded-application/
>> >
>> > 请多多指教!
>> >
>> > --
>> > Guancheng Chen
>> > Blog: http://www.parallellabs.com
>> > Twitter: @guancheng
>> >
>> > --
>> > To unsubscribe, reply using "remove me" as the subject.
>>
>
>
--
Cheers,
Oliver Yang
Twitter: http://twitter.com/yangoliver
Blog: http://blog.csdn.net/yayong
--------------------------------------------------------------------
An OpenSolaris Developer
On 4月16日, 上午5时44分, oliver yang <yangoli...@gmail.com> wrote:
> 在 2010年4月16日 上午11:18,chuang <lichuang1...@gmail.com> 写道:
>
> > "个人以为原子操作应该是语言本身应该提供的feature,而不是用库来实现的"
> > 顶这句话.语言本来就该屏蔽一些与系统相关的东西,要不然要个语言层面的中间层意义不太大了.
>
> 这个非常的不现实,所谓原子操作的代价是很大的,对SMP系统性能的影响很大,如果语言来处理这个,那这个语言在多核系统上性能会很糟糕。
>
>
>
>
>
>
>
> > 2010/4/16 woo <woosi...@gmail.com>
>
> >> 挺好的,顶一下
> >> 随便说一下,个人以为原子操作应该是语言本身应该提供的feature,而不是用库来实现的
> >> 这点C/C++都做得很失败,让我们码工不能把精力集中在代码实现上,反而要搞一些小trick来处理各种同步的问题
> >> 看看C/C++里面各种各样实现的lock-free ....
>
> >> On 14:54 Thu 15 Apr , Guancheng Chen wrote:
> >> > 在多线程程序中原子操作是一个非常重要的概念,它常常用来实现一些同步机制,同时也是一些常见的多线程Bug的源头。本文主要讨论了三个问题:1. 多
> >> > 线程程序中对变量的读写操作是否是原子的?2. 多线程程序中对Bit field(位域)的读写操作是否是线程安全的?3. 程序员该如何使用原子操
> >> > 作?
>
> >> >http://www.parallellabs.com/2010/04/15/atomic-operation-in-multithrea...
奥,是我弄错了。我误解了语言提供原子操作的含义。
原子操作指令都会对CPU pipeline的性能有影响,所以当然能不用就不用。
2010/4/16 jigsaw <jig...@gmail.com>:
实际上我没见过那个语言是在语言层面提供所有的原子操作的。
java的synchronized(obj),或者C#的lock(obj),都不过是语法糖,都是利用object的lock方法。
线程同步,总是通过语言的代码来实现的。没有所谓语言层面的原子操作。
int、float的赋值我们说是原子的,但这不是语言的特性,而是x86硬件的特性。
On Apr 16, 11:06 am, woo <woosi...@gmail.com> wrote:
> 挺好的,顶一下
> 随便说一下,个人以为原子操作应该是语言本身应该提供的feature,而不是用库来实现的
> 这点C/C++都做得很失败,让我们码工不能把精力集中在代码实现上,反而要搞一些小trick来处理各种同步的问题
> 看看C/C++里面各种各样实现的lock-free ....
>
> On 14:54 Thu 15 Apr , Guancheng Chen wrote:
>
> > 在多线程程序中原子操作是一个非常重要的概念,它常常用来实现一些同步机制,同时也是一些常见的多线程Bug的源头。本文主要讨论了三个问题:1. 多
> > 线程程序中对变量的读写操作是否是原子的?2. 多线程程序中对Bit field(位域)的读写操作是否是线程安全的?3. 程序员该如何使用原子操
> > 作?
>
> >http://www.parallellabs.com/2010/04/15/atomic-operation-in-multithrea...
挺好的,顶一下
随便说一下,个人以为原子操作应该是语言本身应该提供的feature,而不是用库来实现的
这点C/C++都做得很失败,让我们码工不能把精力集中在代码实现上,反而要搞一些小trick来处理各种同步的问题
看看C/C++里面各种各样实现的lock-free ....
On 14:54 Thu 15 Apr , Guancheng Chen wrote:
> 在多线程程序中原子操作是一个非常重要的概念,它常常用来实现一些同步机制,同时也是一些常见的多线程Bug的源头。本文主要讨论了三个问题:1. 多
> 线程程序中对变量的读写操作是否是原子的?2. 多线程程序中对Bit field(位域)的读写操作是否是线程安全的?3. 程序员该如何使用原子操
> 作?
>
> http://www.parallellabs.com/2010/04/15/atomic-operation-in-multithreaded-application/
>
> 请多多指教!
>
> --
> Guancheng Chen
> Blog: http://www.parallellabs.com
> Twitter: @guancheng
>
> --
> To unsubscribe, reply using "remove me" as the subject.