0 0

socket异步读取数据5


我现在需要构建一个socket的客户端,服务端接收到请求后会源源不断的把数据发到客户端,数据会按分行符分隔,客户端需要建2个线程,一个把数据写到一个变量中(ConcurrentHashMap),另一个线程把ConcurrentHashMap中的数据读出来并删除
final Thread readFromListThread = new Thread(){
			@Override
			public void run() {
				while(true){
					try {
						String str = client.readMessageFromList();
						System.out.println("读到数据:"+str);
						Thread.sleep(5000);
					} catch (InterruptedException e) {
					}
				}
			}
		};


final Thread readToListThread = new Thread(){
			@Override
			public void run() {
				
				while(true){
					client.readMessageToList();
					if(!SocketClient.receivedMessage.isEmpty()){
						readFromListThread.interrupt();
					}
				}
			}
		};

我是这样写的,可领导说不能这么做,因为建了2个死循环,太占CPU了,我实在想不到其他方法了。
 
2013年7月01日 16:02

1个答案 按时间排序 按投票排序

0 0

看不懂你的业务,建议LZ使用BlockingQueue,在没有请求的时候阻塞,这样对CPU占用的问题会有改观

2013年7月02日 14:52

相关推荐

    Socket异步发送读取,客户端和服务端

    总结来说,"Socket异步发送读取,客户端和服务端"这个主题涵盖了C#中使用Socket进行网络通信的核心技术,包括异步发送和接收数据,以及与Winform界面的交互。理解并掌握这些知识点对于开发网络应用至关重要。

    TcpClient 异步读取数据

    本篇文章将深入探讨如何使用`TcpClient`进行异步读取数据以及如何维护连接状态。 首先,异步读取数据是网络编程中常见且重要的需求,它允许程序在等待数据传输的同时执行其他任务,提高了程序的效率和响应性。`...

    Socket异步接收、调试

    总的来说,Socket异步接收是提高网络程序性能的重要手段,报文调试则是保证数据准确传输的关键步骤。在C#环境中,我们可以利用丰富的API和工具进行开发,例如PerfHandler可能就是一个实用的性能监控工具。通过深入...

    C# Socket异步通讯

    总结来说,C#的Socket异步通讯是通过一系列异步方法和回调函数实现的,它提高了程序的并发性和性能,是构建高效网络应用的关键技术。同时,理解并掌握异步通讯的原理和实践,对于提升C#网络编程能力至关重要。

    c# socket 异步通信 例子

    总结来说,C#的Socket异步通信是通过事件驱动、非阻塞的方式实现的,它提高了应用程序的效率,同时保持了良好的响应性。在VS2005中,我们可以方便地创建、调试和测试这样的异步Socket应用,为开发高效网络服务提供了...

    C#通讯 Socket异步编程源代码与资料

    本文将深入探讨C#中的Socket异步编程,解析其原理、使用方法及相关的源代码分析。 首先,Socket是网络通信的基石,它提供了一种进程间通信(IPC)的方式,允许两个应用程序通过网络进行数据交换。在C#中,System...

    Linux异步通信socket

    一旦检测到状态变化,程序会根据情况读取用户输入或接收来自服务器的数据。 #### 四、重要性与应用场景 异步通信在Linux环境下非常重要,尤其是在高并发场景下,如Web服务器、游戏服务器、实时数据分析系统等。它...

    C#+Socket异步传输,c#socket通信,C#

    总之,C#的Socket异步传输提供了一种强大而灵活的网络编程方式,适用于各种网络应用,包括聊天应用、游戏服务器、数据传输服务等。理解并掌握这些知识点,将有助于开发出高效、健壮的网络程序。在实际开发中,应根据...

    socket 异步服务器

    在本文中,我们将深入探讨"Socket异步服务器"这一主题,这对于理解和实践网络编程至关重要。 首先,让我们了解什么是Socket。Socket是网络通信中的一个接口,它允许两个运行在不同机器上的进程通过网络进行通信。在...

    C# Socket异步通信

    5. **异步读取和写入数据**:通过`BeginReceive`和`EndReceive`以及`BeginSend`和`EndSend`方法异步地读取和发送数据。这使得在等待数据传输的过程中,主线程不会被阻塞。 ```csharp handler.BeginReceive(state....

    VB.Net中Socket异步编程的实例

    在VB.Net中,Socket异步编程是用于网络通信的关键技术,尤其在开发高效、非阻塞的服务器应用程序时。这个实例展示了如何使用VB.Net的Socket类来实现一个简单的TCP服务器和客户端。 首先,我们来看一下服务器端的...

    C# Socket编程 客户异步读取

    总的来说,C#中的Socket异步读取是通过`async/await`、`BeginReceive`或`ReceiveAsync`等方法实现的,这种方式可以有效避免因等待数据传输而阻塞主线程,提高程序的运行效率。在实际的网络应用开发中,理解并熟练...

    一个基于VB.net的异步Socket网络TCP通信

    ### 基于VB.NET的异步Socket网络TCP通信知识点详解 #### 一、概述 在计算机网络领域中,Socket编程是一种广泛使用的编程接口,它允许应用程序通过网络进行通信。Socket编程可以支持多种协议,其中最常用的是TCP/IP...

    Socket异步通信封装

    Socket异步通信是网络编程中的一个重要概念,它允许应用程序在不阻塞主线程的情况下执行其他任务,从而提高程序的响应性和效率。在.NET框架中,我们可以利用System.Net.Sockets命名空间中的类来实现Socket的异步操作...

    C#Socket异步服务器 IOCP 源码

    "C# Socket异步服务器 IOCP 源码" 提供了一种高效实现方式,它利用了Windows操作系统的IO Completion Ports(IOCP)机制。下面将详细阐述相关知识点。 1. **Socket编程**: Socket是网络通信的基础,它提供了进程...

    socket异步通讯实例

    在实际的“socket异步通讯实例”中,可能会涉及异常处理、心跳机制、数据编码解码等多个环节。异常处理是确保程序稳定运行的关键,心跳机制可以检测网络连接的健康状态,数据编码解码则涉及数据在网络中的安全传输。...

    c# socket同步通讯 异步通讯 客户端 服务端 实例

    当有新连接时,EndAccept用于获取新Socket对象。 3. **BeginReceive/EndReceive** 和 **BeginSend/EndSend**:用于异步接收和发送数据。这些方法启动异步操作,然后在数据传输完成后调用回调函数。 4. **事件驱动...

    C#Socket异步通讯

    异步读取数据通常使用`BeginReceive`和`EndReceive`。`BeginReceive`启动接收数据的过程,并提供一个回调函数,在接收到数据时被调用。在回调函数中,`EndReceive`用于获取实际接收到的数据: ```csharp byte[] ...

Global site tag (gtag.js) - Google Analytics