synchmsgdemo.java
来自「演示win32的socket 通讯 八皇后的改进算法 并发Concurren」· Java 代码 · 共 83 行
JAVA
83 行
//@author: j.n.magee 11/11/96
package concurrency.message;
import java.awt.*;
import java.applet.*;
import concurrency.display.*;
public class SynchMsgDemo extends Applet {
ThreadPanel tx;
ThreadPanel rx;
SlotCanvas senddisp;
SlotCanvas recvdisp;
public void init() {
add(tx =new ThreadPanel("Sender",Color.blue,false));
add(senddisp = new SlotCanvas("e",Color.cyan,1));
add(recvdisp = new SlotCanvas("v",Color.cyan,1));
add(rx =new ThreadPanel("Receiver",Color.blue,false));
}
public void start() {
Channel chan = new Channel();
tx.start(new Sender(chan,senddisp));
rx.start(new Receiver(chan,recvdisp));
}
public void stop() {
tx.stop();
rx.stop();
}
}
/*******************SENDER************************/
class Sender implements Runnable {
private Channel chan;
private SlotCanvas display;
Sender(Channel c, SlotCanvas d) {chan=c; display =d;}
public void run() {
try {
int ei = 0;
while(true) {
display.enter(String.valueOf(ei));
ThreadPanel.rotate(12);
chan.send(new Integer(ei));
display.leave(String.valueOf(ei));
ei=(ei+1)%10;
ThreadPanel.rotate(348);
}
} catch (InterruptedException e){}
}
}
/*******************RECEIVER************************/
class Receiver implements Runnable {
private Channel chan;
private SlotCanvas display;
Receiver(Channel c, SlotCanvas d) {chan=c; display =d;}
public void run() {
try {
Integer v=null;
while(true) {
ThreadPanel.rotate(180);
if (v!=null) display.leave(v.toString());
v = (Integer)chan.receive();
display.enter(v.toString());
ThreadPanel.rotate(180);
}
} catch (InterruptedException e){}
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?