博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
关于java之socket输入流输出流可否放在不同的线程里进行处理
阅读量:5266 次
发布时间:2019-06-14

本文共 706 字,大约阅读时间需要 2 分钟。

2014年2月20日到叫(黑土)(人士)的公司去面试,一家新成立的公司。刚去公司是他们新聘请的猎头A来面试我的,A面试完之后是一个号称X总的年轻人来面试我,初一见此人有点邋遢,穿着西装。

X:"你以前有做过地图?"(我简历上有写)

我:"是的,在地图上做过增值"

 

X:"你以前也做过socket,那你socket怎么样?"

我:"还行"

 

X:"如果100w的数据怎么发送?"

当时我被他这么一问,问闷了。

我也没多想就回答:"100w的话做长连接吧"

X:"长连接很耗电?"

我:"如果是PC或者服务器,这个电不在计算的范围内?"

X:"是发送到手机上的。"

接着我也没下文了,闷了。

面试完了,然后回公司的路上我在想:"对呀,服务器怎么发起到手机端的socket"

郁闷中。。。。

 

平常我自己写的原生socket(不是nio),一个socket的input和output都是在同一个线程中。即同步式的,先读再写或者先写再读(有先后顺序,没办法随时写或者随时读)。

不过在回公司的路上之后我也在想,这个原生socket能不能把inputstream和outputstream分别放在不同的线程上面,同时有一个线程进行把数据一直放到写队列中。

但是一旦read线程启动,write线程就被block了(即read被block时write也被block了)。所以同一个socket的input和output只能是放在同一个线程中进行过程式(同步式的,read之后再write,或者write之后再read)

转载于:https://www.cnblogs.com/silentjesse/p/3563724.html

你可能感兴趣的文章
A - Vasya and Socks
查看>>
项目管理、设计开发、代码管理、bug管理工具介绍
查看>>
分布式计算开源框架Hadoop介绍
查看>>
安卓平台接口剖析
查看>>
linux文件编码查看与修改
查看>>
[Java] 系统环境变量配置
查看>>
坏的事情不都会带来坏的结果
查看>>
设置placeholder的样式
查看>>
RPC的基础:调研EOS插件http_plugin
查看>>
HIT1946 希尔伯特分形曲线(dfs)
查看>>
第二次团队冲刺第二天
查看>>
青瓷引擎之纯JavaScript打造HTML5游戏第二弹——《跳跃的方块》Part 2
查看>>
bzoj 2257 (JSOI 2009) 瓶子与燃料
查看>>
11)Java abstract class 和 interface
查看>>
使用xrdp或Xmanager 远程连接 CentOS6
查看>>
SEH简单研究
查看>>
Linux误删恢复
查看>>
Unity调用Windows窗口句柄,选择文件和目录
查看>>
HashMap循环遍历方式
查看>>
React Native 入门 调试项目
查看>>