jsd 多线程与socket网络通信

多线程与socket网络通信
一、多线程
什么是多线程?
百度:“多线程(英语:multithreading),是指从软件或者硬件上实现多个线程并发执行的技术。具有多线程能力的计算机因有硬件支持而能够在同一时间执行多于一个线程,进而提升整体处理性能。”
多线程有什么用?
执行阻塞任务代码的时候,大部分时间用于等待(等待客户端连接),如果有多个用户,则只能一个一个等待,如果一个用户卡住一秒,处理100个用户就需要100秒,而如果使用多线程,一个线程一个用户,则只需要1秒。
多线程比单线程快吗?
多线程是同时处理多个任务的,如果是密集型计算任务,多线程不见得比单线程快。
多线程实例
Thread thread = new Thread(new Runnable(){
public void run(){
//线程方法
}
});
//启动线程
thread.start()
二、socket网络通信
socket介绍
“网络上的两个程序通过一个双向的通信连接实现数据的交换,这个连接的一端称为一个socket。”

要发邮件给自己朋友,必须要知道具体地址,而socket通信则是通过ip和端口作为地址的,ip可以理解为一个地区,端口可以理解为门牌号。

socket实例
服务端:
ServerSocket serverSocket = new ServerSocket(9999)
//循环接收客户端请求
while (true){
//这里如果没有客户端连接是会卡住的
Socket socket = serverSocket.accept()
InputStream input = socket.getInputStream()//输入
byte[] buff = new byte[1024]
int len = input.read(buff,0,buff.length)
print new String(buff,0,len)
input.close()
socket.close()
}

客户端:
Socket socket = new Socket(“127.0.0.1”,9999)
OutputStream output = socket.getOutputStream();//输出
output.write(“hello”.getBytes())
output.close()
socket.close()

三、多线程与socket结合
如果要进行同时读写操作,就需要用到多线程了~

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值