求问Java多进程的问题

galahadgao 2008-04-22 11:06:27
在unix下进行java多进程运行,实现各个进程之间通过文本文件互相传递信息,需要所有进程共享一些公共的数组信息,但是新进程被运行的时候仍然会初始化赋值数组,导致原本其他进程存入的信息被删除,请问如何实现共享公共信息?设置静态数组是不是行不通?
...全文
206 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
laynepeng 2009-05-08
  • 打赏
  • 举报
回复
powerlee2008说了几个,但简单点就是利用硬盘和内存用上。有个叫什么mapedbuff什么的东西可以取到特定内存地址,往里面放,硬盘就很简单了,文件嘛。。。

static是不可以的。

flyinsky10,进程是Process,Google下java process就好了。。。
我是风 2008-04-22
  • 打赏
  • 举报
回复
1.socket
2.pipe
3.jms
galahadgao 2008-04-22
  • 打赏
  • 举报
回复
我要的是多进程运行,通过命令行执行几个进程,模拟多个点之间的信息传递,不用socket实现,是否有办法可以创建共有信息来控制流程
yz_ivan 2008-04-22
  • 打赏
  • 举报
回复
楼主要的是进程间的数据交互

通过文件的话同步蛮难控制的,而且应用方式上会有局限,还是通过Socket去做进程间通讯吧
jayflee 2008-04-22
  • 打赏
  • 举报
回复
应该是多线程 不是多进程。
Cspider588 2008-04-22
  • 打赏
  • 举报
回复
Collections.synchronizedList();
可以用来建立线程安全的List。

或者使用关键段同步。
anqini 2008-04-22
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 helloqiner 的回复:]
可以使用静态变量共享数据。
需要注意的是:普通数组及ArrayList 是非线程安全的,推荐使用 Vector 、Hashtable ,这两种数据结构是线程安全的。
[/Quote]
Vector 、Hashtable 都是老板本jdk中使用的同步的容器,现在都用这个类的这个方法来实现,
Collections.synchronizedList();
helloqiner 2008-04-22
  • 打赏
  • 举报
回复
可以使用静态变量共享数据。
需要注意的是:普通数组及ArrayList 是非线程安全的,推荐使用 Vector 、Hashtable ,这两种数据结构是线程安全的。
flyinsky10 2008-04-22
  • 打赏
  • 举报
回复
java从来都是只有线程的概念,什么是否给你讲进程了?

62,623

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧