RT例如:A机 相互 B机 收发UDP数据,
方式一:socket_X 在 线程M 中连续不断的发数据,socket_Y 在 线程N 中接收数据。(2个线程使用2个socket)
方式二:socket_X 在 线程M 中连续不断的发数据,并且 线程N 也使用 socket_X 来接收数据。(2个线程使用1个socket)请问这两种方式有区别吗?如果 要发送的数据 很多很多,要接收的数据也很多很多,两种方式在 效率上 会有差别吗?
方式一:socket_X 在 线程M 中连续不断的发数据,socket_Y 在 线程N 中接收数据。(2个线程使用2个socket)
方式二:socket_X 在 线程M 中连续不断的发数据,并且 线程N 也使用 socket_X 来接收数据。(2个线程使用1个socket)请问这两种方式有区别吗?如果 要发送的数据 很多很多,要接收的数据也很多很多,两种方式在 效率上 会有差别吗?
两个(多个)线程
假设情况:
A机 线程1 向B一直不停的发数据,A机 线程2 从B那里一直不停的接收数据 (使用UDP)。
那 线程1 和 线程2 是使用 1个socket效率高,还是使用 2个socket效率高???或者说 只要在 1个线程 里使用 1个socket??(因为如上 假设情况 中 “2个线程-->2个socket通讯”、“2个线程-->1个socket通讯”、“1个线程-->1个socket通讯” 所表现出来的效率是完全一样的?没有任何差别??????)
只是多维护一个socket占用系统资源而已(不过这个可以忽略不计)只要你的socket连接是好的 那用A和用B 有区别吗? 至少从程序的层面上没区别
站在操作系统或底层实现的层面上也许有差别 不过你的1、2个线程 1、2个socket
即使在底层有区别 也体现不出来有时间你可以好好研究下 我也想知道底层的区别
而是看你这个业务中,每次发送接收的数据量大小、并发的数量大小、网络的稳定性,业务处理的复杂度
线程的使用等 很多因素,
要到达最高效率关键是看你是否根据需求进行合理设计