当前位置: 首页 > news >正文

独山子区做网站哪里好淘宝关键词排名查询工具免费

独山子区做网站哪里好,淘宝关键词排名查询工具免费,百度网站加v,阜阳网站建设云平台1.阻塞模式 一个线程来处理多个连接显得力不从心 accept等待连接 是一个阻塞方法 read读取SocketChannel中的数据 是一个阻塞方法 /*** 服务端* param args* throws IOException*/public static void main(String[] args) throws IOException {//建立一个缓冲区ByteBuffer b…

1.阻塞模式

一个线程来处理多个连接显得力不从心

accept等待连接 是一个阻塞方法

read读取SocketChannel中的数据 是一个阻塞方法

 /*** 服务端* @param args* @throws IOException*/public static void main(String[] args) throws IOException {//建立一个缓冲区ByteBuffer byteBuffer = ByteBuffer.allocateDirect(16);//创建一个服务器ServerSocketChannel serverSocketChannel = ServerSocketChannel.open();//给服务器绑定一个端口8000,让客户端来连接serverSocketChannel.bind(new InetSocketAddress(8000));//存储多个客户端的连接通道List<SocketChannel> channels = new ArrayList<>();while(true) { //保证可以多个客户端连接//建立与客户端的连接//SocketChannel 与客户端之间通信的数据通道log.info("等待客户端连接connecting");//accept方法是一个阻塞方法,会让线程暂停,客户端连接建立以后才会继续执行SocketChannel socketChannel = serverSocketChannel.accept();log.info("已连接connected...{}", socketChannel);channels.add(socketChannel);for (SocketChannel sc: channels ) {//接受客户端发送的数据log.info("等待客户端向SocketChannel中传输数据...{}", sc);//read方法是一个阻塞方法,会让线程暂停sc.read(byteBuffer);byteBuffer.flip();//读模式String byteBufferContent = StandardCharsets.UTF_8.decode(byteBuffer).toString();log.info("byteBufferContent={}", byteBufferContent);byteBuffer.clear();//写模式,从0开始log.info("读完毕..{}", sc);}}}
/*** 客户端* @param args* @throws IOException*/public static void main(String[] args) throws IOException {SocketChannel socketChannel = SocketChannel.open();//连接服务端,地址localhost:8000socketChannel.connect(new InetSocketAddress("localhost", 8000));//将hello字符串->byte[]->ByteBuffer->socketChannelsocketChannel.write(StandardCharsets.UTF_8.encode("hello"));System.out.println("waiting...");}

2.非阻塞模式

/*** 服务端* @param args* @throws IOException*/public static void main(String[] args) throws IOException {//建立一个缓冲区ByteBuffer byteBuffer = ByteBuffer.allocateDirect(16);//创建一个服务器ServerSocketChannel serverSocketChannel = ServerSocketChannel.open();//****ServerSocketChannel配置为非阻塞-默认是阻塞true,可以让accept方法变成非阻塞serverSocketChannel.configureBlocking(false);//给服务器绑定一个端口8000,让客户端来连接serverSocketChannel.bind(new InetSocketAddress(8000));//存储多个客户端的连接通道List<SocketChannel> channels = new ArrayList<>();while(true) { //保证可以多个客户端连接//建立与客户端的连接//SocketChannel 与客户端之间通信的数据通道//**非阻塞模式下,如果没有客户端连接accept方法返回null值,线程会继续执行SocketChannel socketChannel = serverSocketChannel.accept();if(null != socketChannel) {log.info("已连接connected...{}", socketChannel);channels.add(socketChannel);}for (SocketChannel sc: channels) {//****SocketChannel配置为非阻塞-默认是阻塞true,可以让read方法变成非阻塞sc.configureBlocking(false);//接受客户端发送的数据//**非阻塞模式下,线程会继续执行,如果没有读取到数据会返回0int read = sc.read(byteBuffer);if(read > 0) {byteBuffer.flip();//读模式String byteBufferContent = StandardCharsets.UTF_8.decode(byteBuffer).toString();log.info("byteBufferContent={}", byteBufferContent);byteBuffer.clear();//写模式,从0开始log.info("读完毕..{}", sc);}}}}

 问题:非阻塞模式,会让线程一直在跑,太忙了,不能这么用。参考后续的Selector用法。

http://www.hengruixuexiao.com/news/19603.html

相关文章:

  • 防疫网站网页设计网站如何做推广
  • 广州高档网站建设app推广平台
  • 网站建设在开封找谁做seo外包费用
  • asp本地网站无法打开产品怎么做推广和宣传
  • 北京科技网站制作怎样才能在百度上面做广告宣传
  • 黄冈市建设银行网站免费信息推广平台
  • 医院做网站运维班级优化大师的优点
  • 网站开发课表查询浙江网站seo
  • 做现金贷的网站有哪些单页网站制作教程
  • 企业所得税计算公式怎么算牛排seo系统
  • 有那个网站可以做任务赚钱吗营销软件培训
  • 广州骏域网站建设专家 V深圳推广
  • 怎么做装球的网站百度做网站推广的费用
  • 东营网站建设哪家好培训课程网站
  • 学校网站建设软件推荐域名注册购买
  • 单位门户网站建设的请示360推广登录入口
  • 衡水做外贸网站建设南宁网站优化公司电话
  • 嘉兴 做企业网站今天新闻头条
  • 电子商务网站建设前期有必要买优化大师会员吗
  • 政府网站开发合同范本seo站群优化技术
  • 中国网络安全厂商排名seo公司广州
  • 如何在阿里巴巴上做网站如何优化关键词
  • 深圳网站建设迅美互联网营销师考试题库
  • 网站建设空间是否续费常见的营销方式有哪些
  • 网站建设市场推广招聘seo优化排名营销
  • 目前网站开发语言郑州新闻发布
  • 个人网站可以做商城吗提交网址给百度
  • wordpress mp4 插件下载seo的主要内容
  • 网站建设需要找工信部吗seo查询源码
  • 米业做网站的好处seo在线培训机构排名