听说UI与程序逻辑脱钩、数据库设计/访问与程序logic...or (甚至程序逻辑)脱钩并不少见。
然而,我从未听说过一种将线程任务的细节概括或抽象到逻辑中的方法(除了一个特定于Android的软件包)。老实说,由于所有的细节都在管理线程中,我不希望有许多解决方案能在短期内很好地工作,所以.
我的问题是,如何编写没有连接到使用这些线程的进程的线程?当已经复杂的多线程应用程序中的需求发生变化时,您通常会做什么?是否有一种我应该阅读的设计方法?
我之所以这么问,是因为我们是计算机领域“百亿”-core时代的曙光。最后,在接下来的几十年里,必须有一个很好的方法来管理1k+内核,甚至更多的线程。
发布于 2011-12-04 16:54:34
尽管维基百科没有将线程具体列为横切关注点,但我几乎可以说它就是其中之一。找到一种方法来划分您的数据,以便结果块能够独立地在线程中进行计算,这是非常困难的,并且高度依赖于您的特定问题。
有一些方法可以分离出线程,主要是模式。班主任,线程池,你说吧。它们通常依赖于定义任务、执行任务并将结果写入某些数据结构。
不幸的是,当您希望让文字处理器利用新的64核计算机时,这些模式的使用非常有限。
另一种方法是函数式编程语言,事实上它们本质上是并行的,这就消除了多线程的一些复杂性。但它们只是解决这个问题的一个难题,恐怕你必须知道一大串技术。在多线程中,没有“一刀切”。
发布于 2011-12-19 18:36:09
看看苹果的中央调度,它允许程序员在不必管理线程的情况下利用多个处理器。GCD的核心是利布调度,它可以在Apache许可下使用,所以如果您真的想了解如何管理通用工作线程,可以使用看看源头。如果您想尝试一下,那么显然可以在FreeBSD中使用lib分派,但是在MacOS、X或iOS中不起作用。
https://softwareengineering.stackexchange.com/questions/123210
复制相似问题