微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

大型Parralel应用程序中的线程锁定

如何解决大型Parralel应用程序中的线程锁定

| 关于大型应用程序中的并行化和线程锁定同步,我还有一个更普遍的问题。我正在使用具有深层架构的对象类型的应用程序,该架构还利用了大多数关键任务的并行化。目前,同步是通过系统每个对象内部的线程锁定管理完成的。问题在于锁定范围仅与每个对象一样大,而对象属性正通过许多不同的对象传递,这些对象的属性失去了同步保护。 什么是线程管理,“同步上下文”&c的最佳实践。在大型应用中?似乎唯一的万无一失的解决方案是使数据同步应用程序变得更广泛,以便任何对象都可以随时安全地使用数据,但这似乎违反了面向对象的编码概念。 如何最好地解决这个问题?     

解决方法

一种方法是使您的对象为只读。一个只读对象不需要任何同步,因为在另一个线程写入该对象时(因为没有线程写入该对象),没有线程读取它的机会。可以使用无锁引用计数(使用原子计数器来确保线程安全)来处理对象生存期问题。 当然,不利的一面是,如果您实际上要更改对象的状态,则不能;您必须创建一个新对象,该对象是旧对象的副本,但更改的部分除外。根据您的应用程序的工作情况,该开销可能会也可能不会被接受。     

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。