1.
流是一种基于
context
之上的任务管道抽象,一个
context
可以创建
n
个流
2.
流是异步控制的主要方式
3.
nullptr
表示默认流,每个线程都有自己的默认流
串行同步执行状态
从上面可以发现主程序是女朋友,当女朋友发出“想吃苹果了”则会去调用子函数过程如:“想吃苹果”-->“买苹果”-->“出门”-->“买苹果”-->“回来了”-->“拿到东西”,这个过程女朋友只能等到买回苹果,中间什么也不做,这就是串行同步执行状态,那么并行同步执行状态是怎么做呢?
并行同步执行状态
从上面可以发现,当主程序女朋友调用函数买苹果后,立马就进入了写作业的状态,不会等待苹果的到来,继续向下执行,如果想做其他是,继续调用即可,此时男朋友的微信消息就相当于一个队列,女朋友只需要把想做的事放到队列里即可,不用等待,而男朋友这样从队列获取任务后就开始执行,男朋友获取任务的顺序和女朋友向队列里扔任务的顺序是保持一致的。假如刚开始女朋友发任务吃苹果后,男朋友正在买还没回来,现在右发任务吃西瓜、喝奶茶,此时男朋友会按照顺序买, 然后回来,而女朋友这里可以选择等待,也可以寻找做其他事,同时也可以知道男朋友的状态到哪了,然后什么时候取结果等等,都是可以做到的这就是异步同步过程。而流的操作就是这样的。
stream - 流
1.
上面的例子中,
男朋友的微信消息
,就是任务队列,流的一种抽象
2.
女朋友发出指令后,他可以做任何事情,无需等待指令执行完毕,(指令发出的耗时也是极短的)
3.
即,异步操作,执行的代码,加入流的队列后,立即返回,不耽误时间
4.
女朋友发的指令被送到流中排队,男朋友根据流的队列,