Android blocking
时间: 2023-10-13 22:04:38 浏览: 39
Android中的blocking和non-blocking是指在读取或执行操作时的等待模式。在这种情况下,blocking指的是等待直到操作完成或满足条件,而non-blocking指的是在没有阻塞的情况下立即返回。在Android中,blocking和non-blocking模式可以应用于各种操作,包括读取数据、执行网络请求、录音等。
引用提到了在Java层传递的参数转换为布尔值blocking。在正常读取时,无论是否blocking,都会等待读取userSize之后再返回。而在读取出错时,无论是否blocking,最终也都会返回已读取的部分数据。唯一的区别在于等待时间的设置,blocking模式使用最大等待时间,而non-blocking模式使用零等待时间。
引用总结了blocking和non-blocking模式的特点。无论是否blocking,正常状态下都会读取到设置的bufferSize然后返回。在某些异常情况下,无论是否blocking,都会立即返回,例如状态错误。在出错时无论是否blocking,都会返回已读取的部分数据,可能小于设置的bufferSize。只有在状态正常但是数据未读取到时,blocking模式会进行阻塞等待,non-blocking模式会立即返回WOULD_BLOCK的错误。
引用提到了在Android的AudioRecord录音中,有两种读取模式,即blocking和non-blocking。其中,READ_BLOCKING表示读取操作将阻塞,直到请求的数据全部读取完毕。而READ_NON_BLOCKING表示读取操作将立即返回,读取尽可能多的音频数据而不进行阻塞。
综上所述,blocking和non-blocking在Android中用于控制操作的等待模式,其中blocking会等待操作完成或满足条件后返回,而non-blocking会立即返回。这些模式可以应用于各种操作,包括读取数据、执行网络请求以及录音等。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* *2* *3* [AudioRecord READ_BLOCKING 与 READ_NON_BLOCKING的区别](https://blog.csdn.net/hi_ugly/article/details/122867915)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"]
[ .reference_list ]