Java千百问_01基本概念(015)_阻塞非阻塞有什么区别

Posted 幽灵雾

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java千百问_01基本概念(015)_阻塞非阻塞有什么区别相关的知识,希望对你有一定的参考价值。

点击进入_更多_Java千百问

1、阻塞、非阻塞有什么区别

在进行网络编程时,我们通常会看到同步、异步、阻塞、非阻塞四种调用方式以及他们的组合。
了解同步、异步看这里:同步、异步有什么区别
其中阻塞方式、 非阻塞方式主要是针对服务端(server)的,具体如下:

阻塞(Block)

阻塞调用是指调用结果返回之前,当前线程会被挂起。挂起即线程进入非可执行状态,在这个状态下,cpu不会给线程分配时间片,即线程暂停运行

了解线程的状态看这里:线程的状态有哪些
阻塞调用会让线程一直进行等待,当调用没有执行完就有另一次请求,这是会开启一个新的线程来执行,会占用更多的线程资源。

由于阻塞线程的大部分时间都浪费在等待请求上

以上是关于Java千百问_01基本概念(015)_阻塞非阻塞有什么区别的主要内容,如果未能解决你的问题,请参考以下文章

Java千百问_02基本使用(012)_如何编写非阻塞SocketChannel程序

Java千百问_01基本概念(006)_线程和进程有什么区别

Java千百问_01基本概念(007)_线程的状态有哪些

Java千百问_01基本概念(009)_CLASSPATH是什么

Java千百问_01基本概念(011)_JavaApplet是什么

Java千百问_01基本概念(013)_SocketSocketChannel有什么区别