概述
java版本的CSP操作
public class Chan<T> {
private T message;
private boolean empty = true;
public synchronized T take() {
while (empty) {
try {
wait();
} catch (InterruptedException e) {
}
}
empty = true;
notifyAll();
return message;
}
public synchronized void put(T message) {
while (!empty) {
try {
wait();
} catch (InterruptedException e) {
}
}
empty = false;
this.message = message;
notifyAll();
}
}
基本的csp操作上面就可以了,但是如果想实现golang的select模型,就要对消息进行改造一下:
class ChanMessage<T> {
private String type;
private T data;
public ChanMessage(String type, T data) {
this.type = type;
this.data = data;
}
public String getType() {
return type;
}
public void setType(String type) {
this.type = type;
}
public T getData() {
return data;
}
public void setData(T data) {
this.data = data;
}
}
public class Chan<T extends ChanMessage> {
private T message;
private boolean empty = true
最后
以上就是安详巨人为你收集整理的java实现golang类似的chan的全部内容,希望文章能够帮你解决java实现golang类似的chan所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复