用一个简介的例子:区分阻塞,非阻塞,同步,异步
本文是原「蜗窝讨论区」的历史存档(2016-12-21),来自版块「Linux kernel技术问答」,共 5 帖。讨论区已停止服务,此处仅供查阅。
如题~!
maze 写道: 如题~!
以从串口读取数据为例(假如你能看懂的话,哈哈~~)。
[== Undefined ==]
1.阻塞方式
read(10 bytes)
wait...
wait...
<---RX(5 bytes)
wait...
<---RX(5 bytes)
return(10 bytes)
2.非方式阻塞
read(10 bytes)
return(0 bytes)
...
<---RX(5 bytes)
read(10 bytes)
return(5 bytes)
...
<---RX(5 bytes)
read(5 bytes)
return(5 bytes)
3. 同步方式
上面的阻塞或者非阻塞,都属于同步方式。
4. 异步方式
read(10 bytes, callback)
return(0)
...
<---RX(5 bytes)
...
<---RX(5 bytes)
callback(10bytes)
wowo 写道:
maze 写道: 如题~!
以从串口读取数据为例(假如你能看懂的话,哈哈~~)。
[== Undefined ==]
1.方式阻塞
read(10 bytes)
wait...
wait...
<---RX(5 bytes)
wait...
<---RX(5 bytes)
return(10 bytes)
2.非方式阻塞
read(10 bytes)
return(0 bytes)
...
<---RX(5 bytes)
read(10 bytes)
return(5 bytes)
...
<---RX(5 bytes)
read(5 bytes)
return(5 bytes)
3. 同步方式
上面的阻塞或者非阻塞,都属于同步方式。
4. 异步方式
read(10 bytes, callback)
return(0)
...
<---RX(5 bytes)
...
<---RX(5 bytes)
callback(10bytes)
感谢wowo的回复,正确,但是感觉缺乏一些必要的说明,也把进程这个概念给淡化了。。
maze 写道:
wowo 写道:
maze 写道: 如题~!
以从串口读取数据为例(假如你能看懂的话,哈哈~~)。
[== Undefined ==]
1.方式阻塞
read(10 bytes)
wait...
wait...
<---RX(5 bytes)
wait...
<---RX(5 bytes)
return(10 bytes)
2.非方式阻塞
read(10 bytes)
return(0 bytes)
...
<---RX(5 bytes)
read(10 bytes)
return(5 bytes)
...
<---RX(5 bytes)
read(5 bytes)
return(5 bytes)
3. 同步方式
上面的阻塞或者非阻塞,都属于同步方式。
4. 异步方式
read(10 bytes, callback)
return(0)
...
<---RX(5 bytes)
...
<---RX(5 bytes)
callback(10bytes)
感谢wowo的回复,正确,但是感觉缺乏一些必要的说明,也把进程这个概念给淡化了。。
我是懒懒写啊,这个东东,没什么值得讨论的哈,哈哈 :cool:
wowo 写道:
maze 写道:
wowo 写道:
maze 写道: 如题~!
以从串口读取数据为例(假如你能看懂的话,哈哈~~)。
[== Undefined ==]
1.方式阻塞
read(10 bytes)
wait...
wait...
<---RX(5 bytes)
wait...
<---RX(5 bytes)
return(10 bytes)
2.非方式阻塞
read(10 bytes)
return(0 bytes)
...
<---RX(5 bytes)
read(10 bytes)
return(5 bytes)
...
<---RX(5 bytes)
read(5 bytes)
return(5 bytes)
3. 同步方式
上面的阻塞或者非阻塞,都属于同步方式。
4. 异步方式
read(10 bytes, callback)
return(0)
...
<---RX(5 bytes)
...
<---RX(5 bytes)
callback(10bytes)
感谢wowo的回复,正确,但是感觉缺乏一些必要的说明,也把进程这个概念给淡化了。。
我是懒懒写啊,这个东东,没什么值得讨论的哈,哈哈 :cool:
有些时候思路不清啊,和别人讨论容易闹笑话吧
