How do you determine which threads run loop to receive events, in the context of Combine publishers?

This Mac Catalyst tutorial (https://developer.apple.com/tutorials/mac-catalyst/adding-items-to-the-sidebar) shows the following code snippet:

recipeCollectionsSubscriber = dataStore.$collections
            .receive(on: RunLoop.main)
            .sink { [weak self] _ in
                guard let self = self else { return }
                let snapshot = self.collectionsSnapshot()
                self.dataSource.apply(snapshot, to: .collections, animatingDifferences: true)
            }