- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我刚刚创建了一个单例方法,我想知道函数@synchronized()
是什么确实,因为我经常使用它,但不知道什么意思。
最佳答案
它声明了 critical section围绕代码块。在多线程代码中,@synchronized
保证在任何给定时间只有一个线程可以在 block 中执行该代码。
如果您不知道它的作用,那么您的应用程序可能不是多线程的,并且您可能不需要使用它(特别是如果单例本身不是线程安全的)。
编辑:添加一些 2011 年原始答案中没有的更多信息。@synchronized
指令 prevents multiple threads from entering any region of code that is protected by a @synchronized
directive referring to the same object .传递给 @synchronized
的对象指令是用作“锁”的对象。如果使用不同的对象作为锁,则两个线程可以在同一个 protected 代码区域中,并且您还可以使用相同的对象作为锁来保护两个完全不同的代码区域。
另外,如果你碰巧通过了nil
作为锁定对象,根本不会获得任何锁定。
关于objective-c - @synchronized() 作为 Objective-C 中的单例方法有什么作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44267160/
我最近购买了《C 编程语言》并尝试了 Ex 1-8这是代码 #include #include #include /* * */ int main() { int nl,nt,nb;
早上好!我有一个变量“var”,可能为 0。我检查该变量是否为空,如果不是,我将该变量保存在 php session 中,然后调用另一个页面。在这个新页面中,我检查我创建的 session 是否为空,
我正在努力完成 Learn Python the Hard Way ex.25,但我无法理解某些事情。这是脚本: def break_words(stuff): """this functio
我是一名优秀的程序员,十分优秀!