<!--
{
  "availability" : [
    "iOS: 18.0.0 -",
    "iPadOS: 18.0.0 -",
    "macCatalyst: 18.0.0 -",
    "macOS: 15.0.0 -",
    "tvOS: 18.0.0 -",
    "visionOS: 2.0.0 -",
    "watchOS: 11.0.0 -"
  ],
  "documentType" : "symbol",
  "framework" : "Swift",
  "identifier" : "/documentation/Swift/globalConcurrentExecutor",
  "metadataVersion" : "0.1.0",
  "role" : "Global Variable",
  "symbol" : {
    "kind" : "Global Variable",
    "modules" : [
      "Swift"
    ],
    "preciseIdentifier" : "s:12_Concurrency24globalConcurrentExecutorSch_pvp"
  },
  "title" : "globalConcurrentExecutor"
}
-->

# globalConcurrentExecutor

The global concurrent executor that is used by default for Swift Concurrency
tasks.

```
var globalConcurrentExecutor: any TaskExecutor { get }
```

## Discussion

The executor’s implementation is platform dependent.
By default it uses a fixed size pool of threads and should not be used for
blocking operations which do not guarantee forward progress as doing so may
prevent other tasks from being executed and render the system unresponsive.

You may pass this executor explicitly to a [`Task`](/documentation/Swift/Task) initializer as a task
executor preference, in order to ensure and document that task be executed
on the global executor, instead e.g. inheriting the enclosing actor’s
executor. Refer to [`withTaskExecutorPreference(_:isolation:operation:)`](/documentation/Swift/withTaskExecutorPreference(_:isolation:operation:)) for a
detailed discussion of task executor preferences.

Customizing the global concurrent executor is currently not supported.

---

Copyright &copy; 2026 Apple Inc. All rights reserved. | [Terms of Use](https://www.apple.com/legal/internet-services/terms/site.html) | [Privacy Policy](https://www.apple.com/privacy/privacy-policy)