【问题标题】:Multithreading implementation - pro and cons between java and C [closed]多线程实现 - java 和 C 之间的优缺点 [关闭]
【发布时间】:2014-10-08 10:16:01
【问题描述】:

我的任务是扩展一个用 C 语言编写的正在进行的项目的实现,该项目已经运行良好,因此它将是多线程的。

我有多年的 Java 经验,但对 C 语言非常有限。所以基本上我有一些选择,如下所示:

  1. 将所有代码重写为 Java,然后在 Java 中实现多线程
  2. 通过JNI调用C库中的一些方法,在Java中实现多线程
  3. 学习 C 并继续使用 C 完成任务。

考虑到多线程版本不必从 C 库中获取最新更新,可能以后我可能需要将这些代码放入一些大数据框架中,例如 Hadoop。

为了找出哪个选项更适合我,根据您之前的经历,我需要 cmet 关于以下问题。

  • 从 Java 调用 C 函数的流畅程度如何?是否有任何重大限制?
  • 在 C 中实现多线程的优缺点是什么?

还有你认为哪个选项更好?

【问题讨论】:

  • 我会投 1 票。我敢肯定也有人会投 3 票。但我们无法告诉您哪个更适合您。
  • 请注意,当前的 C 代码不一定是线程安全的,因此选项 2 可能比仅仅创建一个 JNI 接口需要更多的工作。
  • @StephenC 这是一种用于聚类的生物信息学算法。主要与计算有关。
  • many years of experience with Java, but very limited for C, furthermore it's a bioinformatics algorithm for clustering: 不要选择3., an ongoing project written in C that is already working well,如果它没有坏,不要修复它,不要选择1.
  • @dresden - 这没有帮助。你在 C 方面有多好?爪哇?多线程有多好?调试?性能到底有多重要?谁为软件开发买单(例如你的薪水、奖学金等)……他们

标签: java c multithreading parallel-processing


【解决方案1】:

我会继续 3。多线程依赖于 POSIX 标准中的互斥锁和信号量的几个基本概念,我建议您学习它们。 C 的概念非常基础,你必须学习的最困难的东西可能是指针,所以没什么难的。使用 Java 和 C 编写多线程项目后,我建议使用 C(具有深厚的 Java 背景,这对我来说很难说!)学习 POSIX 标准的重要部分(也用于 Unix),而不是依赖外部库和虚拟机器。如果你想用 Java 做,我会排除解决方案 2 并制作一个独立的 Java 项目,它有适当的库来支持多线程。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-01
    • 1970-01-01
    相关资源
    最近更新 更多