The job commands in PowerShell provide a means of executing code asynchronously by creating a new PowerShell process for each job.
As each job executes within a new process, data cannot be shared between jobs. Any required modules, functions, or variables all need to be imported into each job.
In addition, jobs might be considered resource heavy as each job must start both a PowerShell process and a console window's host process.
PowerShell provides a number of commands to create and interact with jobs. In addition to the following commands, Invoke-Command with the AsJob parameter might be used when acting against remote systems.