作者H45 (!H45)
站内java
标题Re: [问题]JAVA有类似C的shared memory的功能吗
时间Sat Nov 18 19:08:24 2006
※ 引述《Lordaeron (Terry)》之铭言:
: ※ 引述《H45 (!H45)》之铭言:
: : MultiThread 的 Worker Pattern 吧
: : http://www.java2s.com/Code/Java/Design-Pattern/WorkerThreadPatterninJava.htm
: : 也就是少数几个 thread, 处理很多个 Client
: 请好好的解读一下它在写什麽, 有什麽情形可以这样做, 什麽情形
: 不能这样做. 不要只丢出一个code, 就当作是哪麽一回事.
: 简单的讲, 如果一个thread 要做的事就像该example 哪麽简单,
: 还需要你来写程式吗?
[站内信件]
对不起
我承认我只是从 google 上面随意找一篇符合 Worker Pattern 的文章
然後简单地把连结丢上来而已
我起初看到 Worker Pattern 是从一本书学到的:
Java Multithread Design Pattern (博硕文化)
嗯...既然有人想知道更多,那我就献个丑...
举一个 Worker Pattern 的实例:
「一个工厂有 5 个工人,他们每天做的事情就是处理各式各样的要求。」 (结束)
上面这句话的意思是:
工厂指的是一个Thread Pool
工人指的就是Thread本身
各式各样的要求就是Runnable Object
换句话说就是:
「一个Thread Pool有 5 个Thread, 这些Thread一直做各式各样的Runnable Object.」
写成程式码就变成:
// MAIN 函式可能长这样
Factory factory = new Factory(5); // 建立一个工厂,聘请 5 个员工
factory.addRequest(...); // 丢请求给这个工厂去做
// Factory 类别可能长这样
Queue reqeust; // 工作内容伫列
Worker[] workers; // 工人阵列
void addRequest(Runnable request); // 加入工作内容的方法
Runnable getRequest(); // 取得工作内容的方法
//Worker 类别可能长这样
public class Worker extends Thread { // 继承Thread类别
public void run() {
while(true) {
getRequest().run(); // 取得工作内容并执行
}
}
}
唔...如果有错...请指正
[站内信件]
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.115.205.85
※ 编辑: H45 来自: 140.115.205.85 (11/18 19:09)