线程和模式用法

时间:2011-01-07 20:56:03

标签: multithreading design-patterns

我有一个数据库。想象一下,我的数据库有1.000.000.000条记录或包含100 GB的数据。我想写一个程序。

程序基本上会向数据库发送查询以获取10条记录,并将在屏幕上显示此记录。然后用户将使用mause上的滚动条来更改显示的记录。例如,当用户向下滚动时,程序将显示2到11之间的记录。如果用户继续向下滚动,记录将继续显示在3和12,4和13之间......用户也可以向上滚动。

我如何在这样的程序中使用线程。任何人都可以给出一个大致的想法。如果我想使用一种模式,我可以使用哪种模式以及为什么?

注意:我也可以使用两个按钮(上下)而不是滚动条。

2 个答案:

答案 0 :(得分:1)

典型的模式是让一个线程处理UI。鼠标,窗口,绘图等

将创建一个完成实际DB i / o的工作线程。该线程将收集来自数据库的响应&将它们放在缓冲区(或将它们逐个发送)到UI线程,然后在它们进入时显示它们。或者,当用户使用UI时,您可以让UI线程查询给定范围的记录的worker。 ,即使没有所有必需的数据,这也需要工人立即做出回应

无论如何,在执行工作时保持UI响应是一种典型的模式。

在数据库级别本身,有很多方法可以将记录中的搜索执行分解为执行程序请求的实际搜索的多个并行任务(在独立线程或光纤上运行)。

答案 1 :(得分:0)

另请参阅Model View Controller (MVC), Model View Presenter (MVP)Model View ViewModel (MVVM)模式,以分离可视化,业务逻辑和数据层。