0121 计算机传输-线程

0121 计算机传输-线程,第1张

0121 计算机传输-线程 线程

两种实现方式
Thread 类
Runnable 接口

为什么需要多线程?
例如:主函数中有个死循环,后面的代码就没用了。
在通信中,经常用到死循环。
比如一个客户端一直待机,来等待一个消息传入。
比如服务端一直阻塞,也不知道客户端什么时候接入。
比如一个界面一直在屏幕上。
比如对于组件的监听。
比如客户端通过服务端简历视频聊天。什么是多线程
进程是程序运行的最小单位。
执行代码指令的时候是以线程为单位。

一段程序跑起来不一定只增加一个线程。需要依赖JVM

如何再开一个线程

创建一个类 继承Thread创建一个类 实现Runable接口

public class TestThread {
    public static void main(String[] args) {
        PrimeRun p1=new PrimeRun(12211);
        PrimeRun p2=new PrimeRun(12123);
        //创建线程并启动
        new Thread(p1).start();
        new Thread(p2).start();
        //此时为双线程
    }
}

class PrimeRun implements Runnable{
    long minPrime;
    PrimeRun(long minPrime){
        this.minPrime=minPrime;
    }

    @Override
    public void run() {
        while(true){
            System.out.println(minPrime);
        }
    }
}

消息发送的模型
A>S>B
B>S>A
AB用户各需要两个线程 来负责收发
S可以使用两个线程
负责收A发B,收B发A
或者4个线程
收A,收B,发A,发B

缓存处理

在线发送:两个用户直接连起来(网络穿透)离线发送:上传到服务器,对方再接收

缓冲池
他的存在可以避免一边读一个字节,一边处理一个字节。
可以先放入内存,再统一处理。
可以处理的数据量就大了。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5716807.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-17
下一篇 2022-12-18

发表评论

登录后才能评论

评论列表(0条)

保存