Java千百问_01基本概念(015)_阻塞非阻塞有什么区别
Posted 幽灵雾
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java千百问_01基本概念(015)_阻塞非阻塞有什么区别相关的知识,希望对你有一定的参考价值。
1、阻塞、非阻塞有什么区别
在进行网络编程时,我们通常会看到同步、异步、阻塞、非阻塞四种调用方式以及他们的组合。
了解同步、异步看这里:同步、异步有什么区别
其中阻塞方式、 非阻塞方式主要是针对服务端(server)的,具体如下:
阻塞(Block)
阻塞调用是指调用结果返回之前,当前线程会被挂起。挂起即线程进入非可执行状态,在这个状态下,cpu不会给线程分配时间片,即线程暂停运行。
了解线程的状态看这里:线程的状态有哪些
阻塞调用会让线程一直进行等待,当调用没有执行完就有另一次请求,这是会开启一个新的线程来执行,会占用更多的线程资源。
由于阻塞线程的大部分时间都浪费在等待请求上
以上是关于Java千百问_01基本概念(015)_阻塞非阻塞有什么区别的主要内容,如果未能解决你的问题,请参考以下文章
Java千百问_02基本使用(012)_如何编写非阻塞SocketChannel程序
Java千百问_01基本概念(006)_线程和进程有什么区别
Java千百问_01基本概念(009)_CLASSPATH是什么