1
back0893 2021-08-13 09:45:13 +08:00
你不是 tcp 连接么..每次连接都启动新的线程处理就行了么
|
2
ysc3839 2021-08-13 09:50:38 +08:00 via Android
你的需求是什么?
如果是客户端和服务端对应线程进行通信,单独用一个线程处理网络通信,收到消息后加入对应线程的消息队列。 |
3
Hallelu 2021-08-13 09:57:40 +08:00
为什么要去管不同端的线程,server 端每个不同的 worker 线程,有一个对应的任务队列就行了,在处理请求的时候,解析分发到对应的 worker 线程就行了
|
4
commoccoom OP |
5
misaka19000 2021-08-13 10:10:28 +08:00
不知所云,我猜你可能需要的是 epoll ?
|
6
Deepseafish 2021-08-13 10:31:43 +08:00
IO 复用?一个线程用 select poll epoll 来处理 IO,再开一个线程池,不同的任务由 IO 线程分发给线程池中的线程来做
|
7
ysc3839 2021-08-13 10:34:51 +08:00
@commoccoom #4 没明白你什么意思,建议先把需求说清楚吧。
|
8
socketpeng 2021-08-13 10:38:06 +08:00
@commoccoom 同意楼上。还是把需求说清楚,这样大家可以根据需求给出解决方案。
|
9
commoccoom OP @ysc3839 我也没搞明白我现在遇到的问题😂
还是上面的图,客户端的线程 A 与服务端的线程 A 定时收发数据,客户端的线程 B 与服务端的线程 B 按需收发数据,但是优先级比线程 A 他们要高。 这种情况下怎么设计服务端和客户端之间的通信呢? [socket 套接字在多线程发送数据时要加锁吗?] https://www.zhihu.com/question/56899596 我是看到这个知乎上的问题,疑惑每个线程有自己的 socket 怎么实现 或者我可能没理解上面链接的问题。。。。 |
10
shawnsh 2021-08-13 11:45:29 +08:00 via Android
先把基本概念搞懂,你在说什么?跟线程有锤子关系?有什么意义?不都是处理器处理?你要不要分析下客户端的 cpu1 经过的消息然后发送给服务器,让服务器的 cpu1 处理,搞不懂你在说啥
|
11
commoccoom OP @shawnsh 别激动啊老哥,搞不懂才问的。。。
|
12
Z1on 2021-08-13 11:51:03 +08:00 via Android
你应该需要的是自定义协议头来区分不同的消息类型吧
|
13
sujin190 2021-08-13 11:59:18 +08:00
想复杂了,其实不用管啥线程连接套接字,其实就是任务,客户端发起一个任务交给服务器特定的任务处理者来处理,一个任务如何编码打包放在 socket 上传输最后交给任务处理者手里,这就是传输协议的事情啊
|