我正在用Java编写一个类,以简化连接到,加入,发送和接收来自多播组的数据的过程。在我描述我的问题之前,请看下面的示例,以便您了解我在做什么。Java多播接收数据和并行处理
这是一个很我正在做的基本代码示例。需要注意的是它根本不会像我的实际代码,与异常捕获,import语句,等等......它只是表明我的课中如何利用Java的多播能力的基本流程:
//Connect to the multicast host, and join the group
MulticastSocket msConn = new MulticastSocket(5540);
InetAddress netAddr = InetAddress.getByName("239.255.255.255");
msConn.joinGroup(netAddr);
//Preapre a datagram packet in which to place recieved data
byte buf[] = new byte[1024];
DatagramPacket pack = new DatagramPacket(buf, buf.length);
//Code halts here until data is recieved
msConn.recieve(pack);
注意在方法中,代码将暂停,直到multicaster类接收到数据包。我想,能够有Java的新的数据,连续听的同时,也同时执行此代码:
int i = 0;
while(true) {
System.out.print(i);
i++;
}
难道这过程中并行进行,并且,如果是这样,请你提供怎样的例子做这个?如果没有,是否还有其他解决方法?
你用'i'做的计数循环是什么?这两个代码块如何相关?否则,当然可以并行执行它们 - 只需启动2个线程,每个线程都运行一个代码块。 – ziesemer
它们并不相关,它只是我想知道如何并行运行的两个分离的无关进程的一个例子。这些样本不在我的实际应用中。 :)请给我一个如何同时创建和运行2个线程的例子吗? –
请参阅下面的@ Mac的答案。 – ziesemer