我听说有不同级别的Synchronization.are(如果有的话,请你用一段代码解释它们吗?)谢谢。是否有任何不同级别的同步?
1
A
回答
3
在Java 5之前只有一个:关键字。这等待并获得了参考对象的排他锁。当应用于某个功能时:
public synchronized void doStuff() { ... }
正在同步的对象是this
。
Java 5增加了很多并发实用程序,其中之一是Lock
对象。这有几个版本,包括ReadWriteLock
。这是我能想到的唯一可以指出的事情。
的问题在于它相当粗糙。做得很糟糕可能会导致死锁。 Java 5 utils允许非阻塞锁获取,锁获取超时和读/写锁支持。
3
你真的需要解释你的意思是“同步水平”。你谈论的区别:
public synchronized void foo()
{
...
}
和
public void foo()
{
synchronized(lock)
{
...
}
}
?或者也许在上面和使用java.util.concurrent.locks的锁?
如果您可以给您听到的更多背景,我们可能会更好地帮助您。更重要的是,你想解决什么问题,你认为可能需要这些信息?
0
我假设OP指的是多线程中使用的对象的同步,而不是Java中的关键字。
这是我的理解,在阅读Goetz后,我们了解了Java中不同级别的同步。
让我们假设我们有一个对象,我们必须在132个线程中使用这个线程,这个线程持续地,纯粹地随机地使用了100年。
abstract Class ICount {
int i;
String iString;
public void add(int i);
public void sub(int i);
public void synchronized print(){
assert(i == Integer.valueOf(iString));
System.out.println("i"+String.valueof(i)+" == "+iString);
}
}
现在可能会有不同的实现,无论是设计还是粗心,在不同层次上都是线程安全的。
- 线程安全同步实现:保证任何java代码,不使用反射来使用这个实现来固定对象,永远不会触发断言。
- 并行同步实现:除了保证线程安全外,此实现的作者还尝试允许在可能的情况下同时执行,并且还避免了锁(争用)。
- 线程不安全的同步实现:开发人员至少知道他的类不是线程安全的,并且要求你不要使用这个实现,除非你只有一个线程。
如果这是一个真正的问题,大多数的实际实现落在第四类'同步',这有时是有效的,而不是足以在上述类别之一进行分类的文档,默认属于第四类。
相关问题
- 1. :是否需要任何同步?
- 2. 是否有任何设计模式的配置同步
- 3. 如何检查AWS S3同步是否有任何更改?
- 4. gzip的不同压缩级别有何不同?
- 5. Laravel日志级别,有何不同?
- 6. 不同组级别
- 7. 行级别不同
- 8. 不同Appendors的不同级别
- 9. 是否有任何工具帮助与TFS同步目录?
- 10. WCF同步呼叫是否有任何限制Tcp/ip
- 11. Silverlight:HtmlPage.Window.Invoke()是否同步?
- 12. @ModelAttribute是否同步?
- 13. connectionWithRequest是否同步?
- 14. LayoutInflater.inflate()是否同步?
- 15. clEnqueueNDRangeKernel是否同步?
- 16. System.Net.Mail.SmtpClient.Send是否同步?
- 17. UISlider具有不同的分割级别
- 18. 是否有任何`itemgetter`等同于`numpy.ndarray`?
- 19. django是否具有与Rails相同的代码生成级别?
- 20. 块级同步
- 21. 块级同步
- 22. 添加库后级别同步失败
- 23. CUDA线程和块级别同步
- 24. JSR303:是否有可能具有不同的验证/消息级别?
- 25. jQuery.remove()是否真的同步?
- 26. 具有相同GMT偏移量的时区是否有任何不同?
- 27. 有任何同步服务库的iPhone
- 28. C#锁vs Java同步 - 运行时是否有区别?
- 29. 如何使用不同的线级别的不同功能
- 30. 同一级标题,但不同类别
只是有些地方写有一些同步的水平,我不知道这是什么意思?而且我已经从我的老师那里听到了一些,他只是有一个点它,他说那些什么各级[:-(] – Johanna 2010-01-20 06:52:25
@Johanna - ?在哪里“的地方”其实,我怀疑你是困惑和你的老师说的是完全不同的东西无论如何,你应该问的第一个人是你的老师?还是有人其他谁去讲座。 – 2010-01-20 07:08:23