print
(
"current:\(Thread.current)"
)
let
ob =
Observable
<
Int
>.
of
(
1
,
2
,
3
,
4
,
5
,
6
,
7
,
8
,
9
,
10
,
11
,
12
,
13
,
14
,
15
,
16
,
17
,
18
,
19
,
20
,
21
,
22
,
23
,
24
,
25
,
26
,
27
,
28
,
29
,
30
,
31
,
32
,
33
,
34
,
35
,
36
,
37
,
38
,
39
,
40
,
41
,
42
,
43
,
44
,
45
,
46
,
47
,
48
,
49
,
50
,
51
,
52
,
53
,
54
,
55
,
56
,
57
,
58
,
59
,
60
,
61
,
62
,
63
,
64
,
65
,
66
,
67
,
68
,
69
,
70
,
71
,
72
,
73
,
74
,
75
,
76
,
77
,
78
,
79
,
80
,
81
,
82
,
83
,
84
,
85
,
86
,
87
,
88
,
89
,
90
,
91
,
92
,
93
,
94
,
95
,
96
,
97
,
98
,
99
,
100
)
.
observe
(
on
:
ConcurrentDispatchQueueScheduler
.
init
(
qos
: .
background
))
.
subscribe
(
onNext
: {
print
($0,
Thread
.
current
)})
.
disposed
(
by
: self.
disposeBag
)
打印结果:
打印结果可以发现我们的队列是一个
并发异步
队列,这里说明下为什么要发送100个元素,因为我们的序列首先是一个管子类似我们的队列遵循
FIFO
的原则。所以如果很小的话基本上就是到91都是线程7.
observeOn
这里通过指定的调度器上
运行其观察者回调
,当我们使用使用
subscribeon
的时候表示在指定调度器上运行其
订阅和取消订阅
类似我们GCD中
并发队列同步函数和异步函数
的效果。
2. SerialDispatchQueueScheduler
observeOn
指定串行队列环境运行其观察者回调
subscribeon
指定串行队列环境运行其订阅和取消订阅
3. OperationQueueScheduler
observeOn
对
OperationQueue
进行封装默认是并发
subscribeOn
4. MainScheduler
observeOn
subscribeOn
5. 总结
以上就是关于Rx Swift中队列的使用一共就
是4种队列
,默认都是
异步执行
,本身我们序列就是相当于一种队列的形式。对于我们没有指定观察者或者订阅者的调度环境的时候默认就是
主线程异步函数
执行。