我正在用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