当前位置:  开发笔记 > 编程语言 > 正文

在某些东西本身变得线程安全之前,你有多低?

如何解决《在某些东西本身变得线程安全之前,你有多低?》经验,为你挑选了0个好方法。

我一直在想,在某些东西是自动线程安全之前你必须要做的事情有多深?

快速举例:

int dat = 0;
void SetInt(int data)
{
    dat = data;
}

..这种方法会被视为线程安全吗?为了确定,我通常将所有的设置方法都包含在互斥锁中,但每次我这样做时,我都忍不住认为这是一个无用的性能开销.我想这一切都分解为编译器生成的程序集?什么时候线程能够闯入代码?每个汇编指令还是每个代码行?在设置或销毁方法堆栈期间线程是否可以中断?像i ++这样的指令是否会被认为是线程安全的 - 如果不是,那么++ i呢?

Lotsa在这里提问 - 而且我不希望直接回答,但关于这个主题的一些信息会很棒:)

[更新]因为现在对我来说很明显(对你们这些人来说<3),在线程中唯一原子保护的东西是汇编指令,我知道这个问题:互斥和信号量包装类怎么样?像这样的类通常使用制作callstacks的方法 - 而且通常使用某种内部计数器的自定义semaphoreclasses不能保证原子/线程安全(无论你想要什么,只要你知道我的意思,我不在乎: P)

推荐阅读
jerry613
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有