1.阻塞非阻塞异步同步是针对方法说的,是评判一个方法运行状态的。和多线程完全两个级别。

2.阻塞非阻塞异步同步是针对方法说的,是评判一个方法运行状态的。和多线程完全两个级别。

3.阻塞非阻塞异步同步是针对方法说的,是评判一个方法运行状态的。和多线程完全两个级别。

2.多线程只是能用来避免阻塞或者同步方法时的效率低问题

1.多线程和阻塞及非阻塞一点关系没有。并不是多线程就非阻塞了。
2.比如socket读取http request数据时,肯定是要多线程读取的,每个连接对应一个线程去读。因为传统的socket的accept(),send()这些方法是阻塞的,程序就会一直等。所以 
就要开启多线程保证程序能向下运行,但是每个线程内读取request时,线程内又是阻塞的。所以多线程和阻塞非阻塞没关系的。

3.多线程和非阻塞(异步)的关系?一点关系没有!即使一个线程也可以是非阻塞或者异步运行的

4.阻塞非阻塞异步同步是针对方法说的,是评判一个方法运行状态的。
3.所以通常在Java中处理阻塞I/O要用到线程(大量的线程)。代码如下
try
{

ServerSocket ss = new
ServerSocket(10000);

System.out.println("server start...");

while
(true) {

Socket s = ss.accept();

new
LogicThread(s);//开一个线程来处理请求,这里面调用InputStream.read()读取请求信息

}

} catch
(Exception e) {

e.printStackTrace();

}

}

}

4.可以分析创建服务器的每个具体步骤。首先创建ServerSocket,然后接受新的连接请求,在LogicThread中处理请求。
传统IO方式(阻塞I/O)在调用InputStream.read()/buffer.readLine()方法时是阻塞的,它会一直等到数据到来或缓冲区已满时或超时时才会返回,并且产生了大量String类型 
垃圾,尽管可以使用StringBuffer优化;同样,在调用ServerSocket.accept()方法时,也会一直阻塞到有客户端连接才会返回,每个客户端连接过来后,服务端都会启动一个线 
程去处理该客户端的请求。并且多线程处理多个连接。每个线程拥有自己的栈空间并且占用一些 CPU 时间。每个线程遇到外部未准备好的时候,都会阻塞掉。阻塞的结果就是会 
带来大量的进程上下文切换。且大部分进程上下文切换可能是无意义的。比如假设一个线程监听某一个端口,一天只会有几次请求进来,但是该 cpu 不得不为该线程不断做上下 
文切换尝试,大部分的切换以阻塞告终。

5.非阻塞式I/O(NIO):也可以说成“New I/O” 
核心类: 
1.Buffer 为所有的原始类型提供 (Buffer) 缓存支持。 
2.Charset 字符集编码解码解决方案 
3.Channel 一个新的原始 I/O 抽象,用于读写Buffer类型,通道可以认为是一种连接,可以是到特定设备,程序或者是网络的连接。通道的类等级结构图如下

10.4.Selector 
在过去的阻塞I/O中,我们一般知道什么时候可以向stream中读或写,因为方法调用直到stream准备好时返回。但是使用非阻塞通道,我们需要一些方法来知道什zid

转载于:https://www.cnblogs.com/panxuejun/p/6480596.html

阻塞/非阻塞/同步/异步方法和多线程的关系?没有任何关系,俩不挨着相关推荐

  1. 进程线程、同步异步、阻塞非阻塞、并发并行、多线程

    一: 进程和线程 1: 进程(Process) 是Windows系统中的一个基本概念,它包含着一个运行程序所需要的资源.一个正在运行的应用程序在操作系统中被视为一个进程,进程可以包括一个或多个线程.线 ...

  2. Nginx讲解(一)Nginx介绍以及同步异步阻塞非阻塞介绍

    一.Nginx概念讲解 Nginx是一个高性能的HTTP和反向代理服务,也是一个IMAP/POP3/SMTP服务 Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3) ...

  3. 15分钟读懂进程线程、同步异步、阻塞非阻塞、并发并行,太实用了!

    作者:Martin cnblogs.com/mhq-martin/p/9035640.html 基本概念 1 进程和线程 进程(Process): 是Windows系统中的一个基本概念,它包含着一个运 ...

  4. 异步/同步、阻塞/非阻塞的理解

    异步/同步.阻塞/非阻塞的理解 [同步和异步] 通俗的讲: 同步是指:发送方发出数据后,等接收方发回响应以后才发下一个数据包的通讯方式.  异步是指:发送方发出数据后,不等接收方发回响应,接着发送下个 ...

  5. 同步异步阻塞非阻塞杂记

    版权声明:本文可能为博主原创文章,若标明出处可随便转载. https://blog.csdn.net/Jailman/article/details/78498458 gevent实现的协程是同步非阻 ...

  6. 怎样理解阻塞非阻塞与同步异步的区别?

    发现很多人对这两个概念往往混为一谈(包括本人,不是很理解). 阻塞"与"非阻塞"与"同步"与"异步"不能简单的从字面理解,提供一个 ...

  7. python 进程池阻塞和非阻塞_python 之 并发编程(进程池与线程池、同步异步阻塞非阻塞、线程queue)...

    9.11 进程池与线程池 池子使用来限制并发的任务数目,限制我们的计算机在一个自己可承受的范围内去并发地执行任务 池子内什么时候装进程:并发的任务属于计算密集型池子内什么时候装线程:并发的任务属于IO ...

  8. 同步异步 阻塞 非阻塞 异步调用 线程队列 协程

    阻塞 非阻塞 阻塞:程序遇到了IO操作 导致代码无法继续执行 交出了COU执行权 非阻塞:没有IO操作 或者即使遇到IO操作 也不阻塞代码执行 阻塞 就绪 运行指的是应用程序所处的状态写程序时 尽量减 ...

  9. 综合场景搞清楚同步 异步 阻塞 非阻塞

    一.同步和异步 同步和异步是指访问数据的一种机制,关注点在于消息通信机制. 1.同步 (1)描述:发送一个请求,等待返回,再发送下一个请求,同步可以避免出现死锁,脏读的发生. (2)概念:同步就是一个 ...

最新文章

  1. BorderDet(论文解读)
  2. 在析构函数中delete this指针问题
  3. java发送苹果消息慢_Spring-boot JMS 发送消息慢的解决方法
  4. Java如何接收前端传来的多层嵌套的复杂json串
  5. ecplice中class.forname一直报错_英雄联盟LOL闪退,弹出吉格斯报错BUGSPLAT
  6. 《自顶向下网络设计(第3版)》——导读
  7. 在团800运维工作总结之couchbase使用
  8. IE、Chrome、Firefox 三大浏览器对比
  9. 【转载】著名黑客雷蒙评价几种编程语言
  10. 在注册表更改Program Files的位置
  11. C#高性能大容量SOCKET并发完成端口例子(有C#客户端)完整实例源码
  12. C 中用语言描述出下述方法的功能,2015年10月自考《大学语文》模拟试题及答案4...
  13. python pptx 替换图片_python win32com批量导出.ppt/.pptx文件所有图片
  14. SQL项目-IOS 应用商店分析
  15. Java 开发中遇到的印象深刻的问题
  16. 模仿某招聘网站的Js搜索菜单
  17. 墙后的全部姿势,全被“瞎眼”AI透视
  18. 像素是什么意思?一个像素有多大? 告诉你像素和分辨率的关系!
  19. mac时间机器文件服务器,在 Mac 上可以与时间机器配合使用的磁盘类型
  20. 迅优随身WiFi骁龙410-103s版型刷openwrt教程

热门文章

  1. 【luogu 1024 一元三次方程求解】二分思想
  2. RN 47 中的 JS 线程及 RunLoop
  3. JQUERY操作html--获取和设置内容、属性、回调函数
  4. SQL Server 中截取字符串常用的函数
  5. servlet中访问mysql无法包含中文的解决
  6. Karrigell 入门教程
  7. 【黑金原创教程】【TimeQuest】【第二章】TimeQuest模型角色,网表概念,时序报告...
  8. java slf4j日志级别_java - 在slf4j中设置运行时消息的日志级别 - 堆栈内存溢出
  9. linux bash source 0,linux中BASH_SOURCE[0](转)
  10. linux下杀死进程全权讲解