2011-05-27 60 views
1

我有用于创建一个应用广泛的报告单。当数据由应用程序传递给单例时,单例然后格式化数据以供在报告中使用。我使用Grand Central Dispatch,因此报告创建不在主线程中。创建大中央调度队列特定单

我的问题是,那会是不好的做法,当单被初始化,其随后仅使用单例创建一个大中央调度队列。我想要一个单独的线程与单例相关联,因为如果我没有报告的某些部分容易出现违反报告格式的情况。如果这是不好的做法,那么什么样的模式适合这个问题,但给我快速和容易使用的代码。

回答

1

你的做法是正确的。串行调度队列用于同步对特定资源的访问。他们处理请求FIFO,使其适合您的要求。我不认为singleton这部分数字在这里。

+0

感觉不对的事情是,我建议创建一个GCD队列,该队列在实例化之后与单例保持一致,然后不做任何事情。这只是为了从单例中获取队列的准备引用,而不是必须传递引用。这让人感到奇怪的是,如果单身人士没有被使用,那么让GCD队列周围无所事事。这种方法是否合理?还是有更好的方法? – 2011-05-27 07:48:07

+0

坐在一个队列中有什么问题?调度队列是轻量级的对象,考虑到用户创建的队列没有线程附加到它们,它应该不是一个问题。我将这些队列看作是负责处理线程管理的全局队列的路由器。我认为使用GCD对于你正在做的事情是一个合适的方法。这只是我的一点点。 – 2011-05-27 21:02:23

+0

那好像对我很好。 – 2011-05-28 04:44:51