Skip to content

Instantly share code, notes, and snippets.

@scott-lydon
Last active June 16, 2020 02:03
Show Gist options
  • Save scott-lydon/a9a3a3539be9a49ac011758e91cb3995 to your computer and use it in GitHub Desktop.
Save scott-lydon/a9a3a3539be9a49ac011758e91cb3995 to your computer and use it in GitHub Desktop.
196 permutations
func test() {
print(1)
DispatchQueue.main.async {
print(2)
DispatchQueue.main.async {
print(3)
}
print(4)
}
print(5)
}
/*
output:
1
5
2
4
3
*/
func test() {
print(1)
DispatchQueue.main.async {
print(2)
DispatchQueue(label: "com.test.mySerialQueue").async {
print(3)
}
print(4)
}
print(5)
}
/*
output:
1
5
2
4
3
*/
func test() {
print(1)
DispatchQueue.main.async {
print(2)
DispatchQueue.global(qos: .userInitiated).async {
print(3)
}
print(4)
}
print(5)
}
/*
output:
1
5
2
4
3
*/
func test() {
print(1)
DispatchQueue.main.async {
print(2)
DispatchQueue.global(qos: .utility).async {
print(3)
}
print(4)
}
print(5)
}
/*
output:
1
5
2
4
3
*/
func test() {
print(1)
DispatchQueue.main.async {
print(2)
DispatchQueue.global(qos: .userInteractive).async {
print(3)
}
print(4)
}
print(5)
}
/*
output:
1
5
2
4
3
*/
func test() {
print(1)
DispatchQueue.main.async {
print(2)
DispatchQueue.global(qos: .background).async {
print(3)
}
print(4)
}
print(5)
}
/*
output:
1
5
2
4
3
*/
func test() {
print(1)
DispatchQueue.main.async {
print(2)
DispatchQueue.global(qos: .unspecified).async {
print(3)
}
print(4)
}
print(5)
}
/*
output:
1
5
2
4
3
*/
func test() {
print(1)
DispatchQueue.main.async {
print(2)
DispatchQueue.main.sync(execute: task)
print(3)
}
print(4)
}
print(5)
}
/*
output:
1
5
2
Thread 1: EXC_BAD_INSTRUCTION (code=EXC_I386_INVOP, subcode=0x0)
*/
func test() {
print(1)
DispatchQueue.main.async {
print(2)
ispatchQueue(label: "com.test.mySerialQueue").sync {
print(3)
}
print(4)
}
print(5)
}
/*
output:
1
5
2
3
4
*/
func test() {
print(1)
DispatchQueue.main.async {
print(2)
DispatchQueue.global(qos: .userInitiated).sync {
print(3)
}
print(4)
}
print(5)
}
/*
output:
1
5
2
3
4
*/
func test() {
print(1)
DispatchQueue.main.async {
print(2)
DispatchQueue.global(qos: .utility).sync {
print(3)
}
print(4)
}
print(5)
}
/*
output:
1
5
2
3
4
*/
func test() {
print(1)
DispatchQueue.main.async {
print(2)
DispatchQueue.global(qos: .userInteractive).sync {
print(3)
}
print(4)
}
print(5)
}
/*
output:
1
5
2
3
4
*/
func test() {
print(1)
DispatchQueue.main.async {
print(2)
DispatchQueue.global(qos: .background).sync {
print(3)
}
print(4)
}
print(5)
}
/*
output:
1
5
2
3
4
*/
func test() {
print(1)
DispatchQueue.main.async {
print(2)
DispatchQueue.global(qos: .unspecified).sync {
print(3)
}
print(4)
}
print(5)
}
/*
output:
1
5
2
3
4
*/
func test() {
print(1)
DispatchQueue.main.async {
print(2)
synced(self) {
print(3)
}
print(4)
}
print(5)
}
/*
output:
1
5
2
3
4
*/
func test() {
print(1)
DispatchQueue(label: "com.test.mySerialQueue").async {
print(2)
DispatchQueue.main.async {
print(3)
}
print(4)
}
print(5)
}
/*
output:
1
5
2
4
3
*/
func test() {
print(1)
DispatchQueue(label: "com.test.mySerialQueue").async {
print(2)
DispatchQueue(label: "com.test.mySerialQueue").async {
print(3)
}
print(4)
}
print(5)
}
/*
output:
1
2
5
4
3
*/
func test() {
print(1)
DispatchQueue(label: "com.test.mySerialQueue").async {
print(2)
DispatchQueue.global(qos: .userInitiated).async {
print(3)
}
print(4)
}
print(5)
}
/*
This is when I realized I should try multiple times
output:
1
2
3
5
4
OR
1
5
2
4
3
OR
1
5
2
3
4
*/
func test() {
print(1)
DispatchQueue(label: "com.test.mySerialQueue").async {
print(2)
DispatchQueue.global(qos: .utility).async {
print(3)
}
print(4)
}
print(5)
}
/*
output:
1
2
4
5
3
OR
1
5
2
4
3
OR
1
5
2
4
3
*/
func test() {
print(1)
DispatchQueue(label: "com.test.mySerialQueue").async {
print(2)
DispatchQueue.global(qos: .userInteractive).async {
print(3)
}
print(4)
}
print(5)
}
/*
output:
1
2
5
4
3
OR
1
5
2
4
3
OR
1
5
2
4
3
The swift compiler has a typing delay after running this.
*/
func test() {
print(1)
DispatchQueue(label: "com.test.mySerialQueue").async {
print(2)
DispatchQueue.global(qos: .background).async {
print(3)
}
print(4)
}
print(5)
}
/*
output:
1
2
4
5
3
OR
1
2
5
4
3
OR
1
5
2
4
3
*/
func test() {
print(1)
DispatchQueue(label: "com.test.mySerialQueue").async {
print(2)
DispatchQueue.global(qos: .unspecified).async {
print(3)
}
print(4)
}
print(5)
}
/*
output:
1
5
2
4
3
OR
1
5
2
4
3
OR
1
2
5
4
3
*/
func test() {
print(1)
DispatchQueue(label: "com.test.mySerialQueue").async {
print(2)
DispatchQueue.main.sync(execute: task)
print(3)
}
print(4)
}
print(5)
}
/*
output:
1
2
5
3
4
OR
1
5
2
3
4
OR
1
2
5
3
4
*/
func test() {
print(1)
DispatchQueue(label: "com.test.mySerialQueue").async {
print(2)
ispatchQueue(label: "com.test.mySerialQueue").sync {
print(3)
}
print(4)
}
print(5)
}
/*
output:
1
2
3
4
5
OR
1
2
3
5
4
OR
1
5
2
3
4
*/
func test() {
print(1)
DispatchQueue(label: "com.test.mySerialQueue").async {
print(2)
DispatchQueue.global(qos: .userInitiated).sync {
print(3)
}
print(4)
}
print(5)
}
/*
output:
1
2
5
3
4
OR
1
5
2
3
4
OR
1
5
2
3
4
*/
func test() {
print(1)
DispatchQueue(label: "com.test.mySerialQueue").async {
print(2)
DispatchQueue.global(qos: .utility).sync {
print(3)
}
print(4)
}
print(5)
}
/*
output:
1
2
5
3
4
OR
1
5
2
3
4
OR
1
5
2
3
4
*/
func test() {
print(1)
DispatchQueue(label: "com.test.mySerialQueue").async {
print(2)
DispatchQueue.global(qos: .userInteractive).sync {
print(3)
}
print(4)
}
print(5)
}
/*
output:
1
2
5
3
4
OR
1
2
5
3
4
OR
1
5
2
3
4
*/
func test() {
print(1)
DispatchQueue(label: "com.test.mySerialQueue").async {
print(2)
DispatchQueue.global(qos: .background).sync {
print(3)
}
print(4)
}
print(5)
}
/*
output:
1
2
5
3
4
OR
1
2
3
4
5
OR
1
5
2
3
4
*/
func test() {
print(1)
DispatchQueue(label: "com.test.mySerialQueue").async {
print(2)
DispatchQueue.global(qos: .unspecified).sync {
print(3)
}
print(4)
}
print(5)
}
/*
output:
1
2
5
3
4
OR
1
5
2
3
4
OR
1
2
5
3
4
*/
func test() {
print(1)
DispatchQueue(label: "com.test.mySerialQueue").async {
print(2)
synced(self) {
print(3)
}
print(4)
}
print(5)
}
/*
output:
1
2
5
3
4
OR
1
5
2
3
4
OR
1
5
2
3
4
*/
func test() {
print(1)
DispatchQueue.global(qos: .userInitiated).async {
print(2)
DispatchQueue.main.async {
print(3)
}
print(4)
}
print(5)
}
/*
output:
1
5
2
4
3
x3
*/
func test() {
print(1)
DispatchQueue.global(qos: .userInitiated).async {
print(2)
DispatchQueue(label: "com.test.mySerialQueue").async {
print(3)
}
print(4)
}
print(5)
}
/*
output:
1
2
5
4
3
OR
1
5
2
4
3
x2
*/
func test() {
print(1)
DispatchQueue.global(qos: .userInitiated).async {
print(2)
DispatchQueue.global(qos: .userInitiated).async {
print(3)
}
print(4)
}
print(5)
}
/*
output:
1
2
3
5
4
OR
1
5
2
3
4
OR
1
5
2
4
3
*/
func test() {
print(1)
DispatchQueue.global(qos: .userInitiated).async {
print(2)
DispatchQueue.global(qos: .utility).async {
print(3)
}
print(4)
}
print(5)
}
/*
output:
1
2
5
4
3
OR
1
5
2
4
3
OR
1
5
2
4
3
*/
func test() {
print(1)
DispatchQueue.global(qos: .userInitiated).async {
print(2)
DispatchQueue.global(qos: .userInteractive).async {
print(3)
}
print(4)
}
print(5)
}
/*
output:
1
2
3
5
4
OR
1
2
3
4
5
OR
1
5
2
4
3
*/
func test() {
print(1)
DispatchQueue.global(qos: .userInitiated).async {
print(2)
DispatchQueue.global(qos: .background).async {
print(3)
}
print(4)
}
print(5)
}
/*
output:
1
2
4
5
3
x3
OR
1
5
2
4
3
x5
*/
func test() {
print(1)
DispatchQueue.global(qos: .userInitiated).async {
print(2)
DispatchQueue.global(qos: .unspecified).async {
print(3)
}
print(4)
}
print(5)
}
/*
output:
1
2
3
4
5
OR
1
2
5
4
3
OR
1
2
4
3
5
*/
func test() {
print(1)
DispatchQueue.global(qos: .userInitiated).async {
print(2)
DispatchQueue.main.sync {
print(3)
}
print(4)
}
print(5)
}
/*
output:
1
2
5
3
4
OR
1
5
2
3
4
OR
1
2
5
3
4
*/
func test() {
print(1)
DispatchQueue.global(qos: .userInitiated).async {
print(2)
ispatchQueue(label: "com.test.mySerialQueue").sync {
print(3)
}
print(4)
}
print(5)
}
/*
output:
1
2
5
3
4
OR
1
5
2
3
4
OR
1
2
5
3
4
*/
func test() {
print(1)
DispatchQueue.global(qos: .userInitiated).async {
print(2)
DispatchQueue.global(qos: .userInitiated).sync {
print(3)
}
print(4)
}
print(5)
}
/*
output:
1
2
5
3
4
OR
1
5
2
3
4
OR
1
5
2
3
4
*/
func test() {
print(1)
DispatchQueue.global(qos: .userInitiated).async {
print(2)
DispatchQueue.global(qos: .utility).sync {
print(3)
}
print(4)
}
print(5)
}
/*
output:
1
2
3
4
5
OR
1
5
2
3
4
OR
1
5
2
3
4
*/
func test() {
print(1)
DispatchQueue.global(qos: .userInitiated).async {
print(2)
DispatchQueue.global(qos: .userInteractive).sync {
print(3)
}
print(4)
}
print(5)
}
/*
output:
1
2
5
3
4
OR
1
5
2
3
4
OR
1
5
2
3
4
*/
func test() {
print(1)
DispatchQueue.global(qos: .userInitiated).async {
print(2)
DispatchQueue.global(qos: .background).sync {
print(3)
}
print(4)
}
print(5)
}
/*
output:
1
2
5
3
4
OR
1
5
2
3
4
OR
1
2
3
4
5
*/
func test() {
print(1)
DispatchQueue.global(qos: .userInitiated).async {
print(2)
DispatchQueue.global(qos: .unspecified).sync {
print(3)
}
print(4)
}
print(5)
}
/*
output:
1
2
5
3
4
OR
1
5
2
3
4
x2
*/
func test() {
print(1)
DispatchQueue.global(qos: .userInitiated).async {
print(2)
synced(self) {
print(3)
}
print(4)
}
print(5)
}
/*
output:
1
5
2
3
4
x2
OR
1
2
3
4
5
OR
1
5
2
3
4
*/
func test() {
print(1)
DispatchQueue.global(qos: .utility).async {
print(2)
DispatchQueue.main.async {
print(3)
}
print(4)
}
print(5)
}
/*
output:
1
5
2
4
3
x2
OR
1
5
2
4
3
x5
*/
func test() {
print(1)
DispatchQueue.global(qos: .utility).async {
print(2)
DispatchQueue(label: "com.test.mySerialQueue").async {
print(3)
}
print(4)
}
print(5)
}
/*
output:
1
5
2
4
3
x4
OR
1
5
2
3
4
*/
func test() {
print(1)
DispatchQueue.global(qos: .utility).async {
print(2)
DispatchQueue.global(qos: .userInitiated).async {
print(3)
}
print(4)
}
print(5)
}
/*
output:
1
5
2
3
4
x2
OR
1
5
2
4
3
*/
func test() {
print(1)
DispatchQueue.global(qos: .utility).async {
print(2)
DispatchQueue.global(qos: .utility).async {
print(3)
}
print(4)
}
print(5)
}
/*
output:
1
5
2
4
3
OR
1
5
2
4
3
OR
1
5
2
4
3
*/
func test() {
print(1)
DispatchQueue.global(qos: .utility).async {
print(2)
DispatchQueue.global(qos: .userInteractive).async {
print(3)
}
print(4)
}
print(5)
}
/*
output:
1
5
2
4
3
OR
1
5
2
3
4
x2
*/
func test() {
print(1)
DispatchQueue.global(qos: .utility).async {
print(2)
DispatchQueue.global(qos: .background).async {
print(3)
}
print(4)
}
print(5)
}
/*
output:
1
2
5
4
3
OR
1
5
2
4
3
OR
1
5
2
4
3
*/
func test() {
print(1)
DispatchQueue.global(qos: .utility).async {
print(2)
DispatchQueue.global(qos: .unspecified).async {
print(3)
}
print(4)
}
print(5)
}
/*
output:
1
5
2
4
3
x5
*/
func test() {
print(1)
DispatchQueue.global(qos: .utility).async {
print(2)
DispatchQueue.main.sync {
print(3)
}
print(4)
}
print(5)
}
/*
output:
1
5
2
3
4
x5
*/
func test() {
print(1)
DispatchQueue.global(qos: .utility).async {
print(2)
ispatchQueue(label: "com.test.mySerialQueue").sync {
print(3)
}
print(4)
}
print(5)
}
/*
output:
1
5
2
3
4
x3
*/
func test() {
print(1)
DispatchQueue.global(qos: .utility).async {
print(2)
DispatchQueue.global(qos: .utility).sync {
print(3)
}
print(4)
}
print(5)
}
/*
output:
1
5
2
3
4
x2
*/
func test() {
print(1)
DispatchQueue.global(qos: .utility).async {
print(2)
DispatchQueue.global(qos: .userInteractive).sync {
print(3)
}
print(4)
}
print(5)
}
/*
output:
1
5
2
3
4
x4
*/
func test() {
print(1)
DispatchQueue.global(qos: .utility).async {
print(2)
DispatchQueue.global(qos: .background).sync {
print(3)
}
print(4)
}
print(5)
}
/*
output:
1
5
2
3
4
x4
*/
func test() {
print(1)
DispatchQueue.global(qos: .utility).async {
print(2)
DispatchQueue.global(qos: .unspecified).sync {
print(3)
}
print(4)
}
print(5)
}
/*
output:
1
5
2
3
4
x5
*/
func test() {
print(1)
DispatchQueue.global(qos: .utility).async {
print(2)
synced(self) {
print(3)
}
print(4)
}
print(5)
}
/*
output:
1
5
2
3
4
x3
*/
func test() {
print(1)
DispatchQueue.global(qos: .userInteractive).async {
print(2)
DispatchQueue.main.async {
print(3)
}
print(4)
}
print(5)
}
/*
output:
1
2
4
5
3
x3
OR
1
5
2
4
3
*/
func test() {
print(1)
DispatchQueue.global(qos: .userInteractive).async {
print(2)
DispatchQueue(label: "com.test.mySerialQueue").async {
print(3)
}
print(4)
}
print(5)
}
/*
output:
1
2
5
4
3
OR
1
5
2
4
3
x2
*/
func test() {
print(1)
DispatchQueue.global(qos: .userInteractive).async {
print(2)
DispatchQueue.global(qos: .userInitiated).async {
print(3)
}
print(4)
}
print(5)
}
/*
output:
1
2
4
5
3
x2
OR
1
2
5
4
3
OR
1
5
2
4
3
*/
func test() {
print(1)
DispatchQueue.global(qos: .userInteractive).async {
print(2)
DispatchQueue.global(qos: .utility).async {
print(3)
}
print(4)
}
print(5)
}
/*
output:
1
5
2
4
3
x3
OR
1
2
5
4
3
*/
func test() {
print(1)
DispatchQueue.global(qos: .userInteractive).async {
print(2)
DispatchQueue.global(qos: .userInteractive).async {
print(3)
}
print(4)
}
print(5)
}
/*
output:
1
2
3
4
5
OR
1
2
4
3
5
OR
1
2
5
4
3
*/
func test() {
print(1)
DispatchQueue.global(qos: .userInteractive).async {
print(2)
DispatchQueue.global(qos: .background).async {
print(3)
}
print(4)
}
print(5)
}
/*
output:
1
2
4
5
3
x3
*/
func test() {
print(1)
DispatchQueue.global(qos: .userInteractive).async {
print(2)
DispatchQueue.global(qos: .unspecified).async {
print(3)
}
print(4)
}
print(5)
}
/*
output:
1
2
4
5
3
OR
1
2
5
4
3
OR
1
5
2
4
3
*/
func test() {
print(1)
DispatchQueue.global(qos: .userInteractive).async {
print(2)
DispatchQueue.main.sync {
print(3)
}
print(4)
}
print(5)
}
/*
output:
1
2
5
3
4
x2
OR
1
5
2
3
4
*/
func test() {
print(1)
DispatchQueue.global(qos: .userInteractive).async {
print(2)
ispatchQueue(label: "com.test.mySerialQueue").sync {
print(3)
}
print(4)
}
print(5)
}
/*
output:
1
2
5
3
4
x2
OR
1
2
3
4
5
*/
func test() {
print(1)
DispatchQueue.global(qos: .userInteractive).async {
print(2)
DispatchQueue.global(qos: .userInitiated).sync {
print(3)
}
print(4)
}
print(5)
}
/*
output:
1
2
5
3
4
OR
1
5
2
3
4
OR
1
5
2
3
4
*/
func test() {
print(1)
DispatchQueue.global(qos: .userInteractive).async {
print(2)
DispatchQueue.global(qos: .utility).sync {
print(3)
}
print(4)
}
print(5)
}
/*
output:
1
2
5
3
4
OR
1
5
2
3
4
x2
*/
func test() {
print(1)
DispatchQueue.global(qos: .userInteractive).async {
print(2)
DispatchQueue.global(qos: .userInteractive).sync {
print(3)
}
print(4)
}
print(5)
}
/*
output:
1
2
5
3
4
OR
1
2
3
4
5
OR
1
5
2
3
4
*/
func test() {
print(1)
DispatchQueue.global(qos: .userInteractive).async {
print(2)
DispatchQueue.global(qos: .background).sync {
print(3)
}
print(4)
}
print(5)
}
/*
output:
1
2
3
4
5
x3
OR
1
2
5
3
4
*/
func test() {
print(1)
DispatchQueue.global(qos: .userInteractive).async {
print(2)
DispatchQueue.global(qos: .unspecified).sync {
print(3)
}
print(4)
}
print(5)
}
/*
output:
1
2
5
3
4
x2
OR
1
5
2
3
4
*/
func test() {
print(1)
DispatchQueue.global(qos: .userInteractive).async {
print(2)
synced(self) {
print(3)
}
print(4)
}
print(5)
}
/*
output:
1
2
5
3
4
OR
1
2
3
4
5
x2
*/
func test() {
print(1)
DispatchQueue.global(qos: .background).async {
print(2)
DispatchQueue.main.async {
print(3)
}
print(4)
}
print(5)
}
/*
output:
1
5
2
4
3
x3
OR
1
5
2
3
4
*/
func test() {
print(1)
DispatchQueue.global(qos: .background).async {
print(2)
DispatchQueue(label: "com.test.mySerialQueue").async {
print(3)
}
print(4)
}
print(5)
}
/*
output:
1
5
2
4
3
x6
*/
func test() {
print(1)
DispatchQueue.global(qos: .background).async {
print(2)
DispatchQueue.global(qos: .userInitiated).async {
print(3)
}
print(4)
}
print(5)
}
/*
output:
1
5
2
3
4
x3
OR
1
5
2
4
3
x3
*/
func test() {
print(1)
DispatchQueue.global(qos: .background).async {
print(2)
DispatchQueue.global(qos: .utility).async {
print(3)
}
print(4)
}
print(5)
}
/*
output:
1
5
2
4
3
x2
OR
1
5
2
3
4
*/
func test() {
print(1)
DispatchQueue.global(qos: .background).async {
print(2)
DispatchQueue.global(qos: .userInteractive).async {
print(3)
}
print(4)
}
print(5)
}
/*
output:
1
5
2
4
3
x3
OR
1
5
2
3
4
*/
func test() {
print(1)
DispatchQueue.global(qos: .background).async {
print(2)
DispatchQueue.global(qos: .background).async {
print(3)
}
print(4)
}
print(5)
}
/*
output:
1
5
2
4
3
x5
Notice numbers printing sequentially, not all instantaneous.
*/
func test() {
print(1)
DispatchQueue.global(qos: .background).async {
print(2)
DispatchQueue.global(qos: .unspecified).async {
print(3)
}
print(4)
}
print(5)
}
/*
output:
1
5
2
4
3
x5
*/
func test() {
print(1)
DispatchQueue.global(qos: .background).async {
print(2)
DispatchQueue.main.sync {
print(3)
}
print(4)
}
print(5)
}
/*
output:
1
5
2
3
4
x4
*/
func test() {
print(1)
DispatchQueue.global(qos: .background).async {
print(2)
ispatchQueue(label: "com.test.mySerialQueue").sync {
print(3)
}
print(4)
}
print(5)
}
/*
output:
1
5
2
3
4
x5
*/
func test() {
print(1)
DispatchQueue.global(qos: .background).async {
print(2)
DispatchQueue.global(qos: .userInitiated).sync {
print(3)
}
print(4)
}
print(5)
}
/*
output:
1
5
2
3
4
x4
*/
func test() {
print(1)
DispatchQueue.global(qos: .background).async {
print(2)
DispatchQueue.global(qos: .utility).sync {
print(3)
}
print(4)
}
print(5)
}
/*
output:
1
5
2
3
4
x4
*/
func test() {
print(1)
DispatchQueue.global(qos: .background).async {
print(2)
DispatchQueue.global(qos: .utility).sync {
print(3)
}
print(4)
}
print(5)
}
/*
output:
1
5
2
3
4
x5
*/
func test() {
print(1)
DispatchQueue.global(qos: .background).async {
print(2)
DispatchQueue.global(qos: .userInteractive).sync {
print(3)
}
print(4)
}
print(5)
}
/*
output:
1
5
2
3
4
x5
*/
func test() {
print(1)
DispatchQueue.global(qos: .background).async {
print(2)
DispatchQueue.global(qos: .unspecified).sync {
print(3)
}
print(4)
}
print(5)
}
/*
output:
1
5
2
3
4
x4
*/
func test() {
print(1)
DispatchQueue.global(qos: .background).async {
print(2)
synced(self) {
print(3)
}
print(4)
}
print(5)
}
/*
output:
1
5
2
3
4
x6
*/
func test() {
print(1)
DispatchQueue.global(qos: .unspecified).async {
print(2)
DispatchQueue.main.async {
print(3)
}
print(4)
}
print(5)
}
/*
output:
1
2
5
4
3
x2
OR
1
5
2
4
3
x2
*/
func test() {
print(1)
DispatchQueue.global(qos: .unspecified).async {
print(2)
DispatchQueue.global(qos: .userInitiated).async {
print(3)
}
print(4)
}
print(5)
}
/*
output:
1
2
4
3
5
x2
OR
1
5
2
4
3
x3
*/
func test() {
print(1)
DispatchQueue.global(qos: .unspecified).async {
print(2)
DispatchQueue.global(qos: .utility).async {
print(3)
}
print(4)
}
print(5)
}
/*
output:
1
2
4
5
3
x2
OR
1
5
2
4
3
x2
*/
func test() {
print(1)
DispatchQueue.global(qos: .unspecified).async {
print(2)
DispatchQueue.global(qos: .userInteractive).async {
print(3)
}
print(4)
}
print(5)
}
/*
output:
1
2
4
3
5
1
5
2
3
4
1
5
2
3
4
*/
func test() {
print(1)
DispatchQueue.global(qos: .unspecified).async {
print(2)
DispatchQueue.global(qos: .background).async {
print(3)
}
print(4)
}
print(5)
}
/*
output:
1
5
2
4
3
1
5
2
4
3
1
5
2
4
3
*/
func test() {
print(1)
DispatchQueue.global(qos: .unspecified).async {
print(2)
DispatchQueue.global(qos: .unspecified).async {
print(3)
}
print(4)
}
print(5)
}
/*
output:
1
5
2
3
4
1
5
2
3
4
1
5
2
4
3
1
5
2
4
3
*/
func test() {
print(1)
DispatchQueue.global(qos: .unspecified).async {
print(2)
DispatchQueue.main.sync {
print(3)
}
print(4)
}
print(5)
}
/*
output:
1
5
2
3
4
1
5
2
3
4
1
2
5
3
4
*/
func test() {
print(1)
DispatchQueue.global(qos: .unspecified).async {
print(2)
ispatchQueue(label: "com.test.mySerialQueue").sync {
print(3)
}
print(4)
}
print(5)
}
/*
output:
1
5
2
3
4
1
5
2
3
4
1
5
2
3
4
*/
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment