首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >用于在java中编写多线程代码的可接受进程/过程

用于在java中编写多线程代码的可接受进程/过程
EN

Stack Overflow用户
提问于 2014-05-12 08:37:57
回答 2查看 56关注 0票数 0

在最近的一次采访中,我被要求说出一个在java中用来实现多线程和调试多线程问题的特定进程/过程。虽然我知道一些关于如何编写好的多线程代码的良好实践,但我不知道在java中用于编写多线程/并发程序的任何特定过程。

我做了一些搜索,阅读了一些关于这个主题的博客和书籍,但我遇到的最接近的范例是Amdahl定律,但那是关于多线程的性能方面的。是否有这样的特定进程/算法/规则集用于在java中编写多线程应用程序

EN

回答 2

Stack Overflow用户

发布于 2014-05-12 09:30:39

你提出这个问题的方式相当模棱两可。在“java中使用的实现多线程的技术”一文中,它们可能指的是同步原语。Java为监视器提供了synchronizewaitnotify。它将线程代码体实现为Runnable,其他语言和库使用不同的方法。

对于实现,Java库支持多线程设计模式。同步队列支持生产者-消费者模式。还有线程池。线程对代码和数据的独占访问有互斥锁和互斥锁。等。

JVM旨在通过为调试器提供内置API来支持调试。

当然,调试多线程代码有点像矛盾修饰法。Bugs是不确定的,所以仅仅运行没有bug并不意味着它们消失了。

因此,编写多线程代码的最重要的智慧是,您必须提前证明它是正确的,通常是通过建立不变量并使用提供的工具(如同步原语)来强制执行它们。添加断言来验证不变量是验证证明的一种方式,尽管很少能保证证明是正确的。

票数 0
EN

Stack Overflow用户

发布于 2014-05-12 10:29:41

下面是一些创建安全、多线程Java代码的一般想法:

  • Thread限制-修改可变数据类型应限制在单个线程内,以防止争用线程安全的数据类型-例如,线程安全的将安全地允许多个线程访问和修改其BlockingQueue数据类型-使用不能修改的数据类型允许它们在synchronize之间安全地共享-对方法或对象使用synchronize只允许单个线程访问它
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23599477

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档