荔园在线

荔园之美,在春之萌芽,在夏之绽放,在秋之收获,在冬之沉淀

[回到开始] [上一篇][下一篇]


发信人: icefire (35.5), 信区: Java
标  题: Java 中如何模拟进程?
发信站: 深大荔园晨风站 (Thu Apr  9 11:33:41 1998), 转信


发信人: afei (飞色精灵), 信区: Java
标 题: Re: Java 中如何模拟进程?
发信站: BBS 水木清华站 (Fri Nov 21 04:38:32 1997)

【 在 darling (豆腐干) 的大作中提到: 】
: 现在问题是作移植时,以前用 C 语言作的版本中大量用了进程和线程,
: 进程间是用命名管道进行通讯。如果要用 JAVA 实现,线程好说,进程
: 呢?好象只能用线程模拟。但他们之间的通讯呢? JAVA 线程之间的通讯
: 好象只能用 Pipe. 在 JAVA 中执行其他程序,(like 'exec' system call
可以使用公共数据块
传统的C中进程的优点是各进程SYSTEM_SIDE_CONTENTION, 所以当某个进程BLOCK
时其他进程仍可继续运行, 缺点是通信手段较烦琐, 实际上是非常种类繁多和
优秀, 例如相关进程可使用无名套管(单管或双管), 内存映象(mmap);
不相关进程间的通信手段更是花样何其多, 消息队列, 信号量, 共享内存,
命名套管, UNIX域流, 等. 但是这众多的方法都面临着共同的问题就是编程
较复杂, 尤其是处理阻塞/非阻塞, 时序/非时序问题.

我到目前为止只会使用JDK1.0.*, 不过JAVA的优点还是很明显的, JDK明显提供
了非常多的对线程的控制, 阻塞和时序问题也较好的得到了解决. 当某个线程阻
塞时, 通常不会影响主线程的运行, 很类似于C中LWP的概念. 另外JAVA 提供了
synchronized 关键字对目标和函数段进行时序化. Java的Process类提供的服务
少之又少, 不用也罢. 仅相当于C的无名套管(双向管)
: in Unix) , 只好用 Process 类了.
: 这是本人开发中遇到的一些实际问题,大家如果有兴趣可以帮想想。
: thanks!
--
来去如风

※ 来源:.深大荔园晨风站 bbs.szu.edu.cn.[FROM: 202.192.140.5]


[回到开始] [上一篇][下一篇]

荔园在线首页 友情链接:深圳大学 深大招生 荔园晨风BBS S-Term软件 网络书店