在unix下进行java多进程运行,实现各个进程之间通过文本文件互相传递信息,需要所有进程共享一些公共的数组信息,但是新进程被运行的时候仍然会初始化赋值数组,导致原本其他进程存入的信息被删除,请问如何实现共享公共信息?设置静态数组是不是行不通?

解决方案 »

  1.   

    可以使用静态变量共享数据。
    需要注意的是:普通数组及ArrayList 是非线程安全的,推荐使用 Vector 、Hashtable ,这两种数据结构是线程安全的。
      

  2.   

    Vector 、Hashtable 都是老板本jdk中使用的同步的容器,现在都用这个类的这个方法来实现,
    Collections.synchronizedList();
      

  3.   

    Collections.synchronizedList();
    可以用来建立线程安全的List。或者使用关键段同步。
      

  4.   

    楼主要的是进程间的数据交互通过文件的话同步蛮难控制的,而且应用方式上会有局限,还是通过Socket去做进程间通讯吧
      

  5.   

    我要的是多进程运行,通过命令行执行几个进程,模拟多个点之间的信息传递,不用socket实现,是否有办法可以创建共有信息来控制流程
      

  6.   

    java从来都是只有线程的概念,什么是否给你讲进程了?
      

  7.   

    powerlee2008说了几个,但简单点就是利用硬盘和内存用上。有个叫什么mapedbuff什么的东西可以取到特定内存地址,往里面放,硬盘就很简单了,文件嘛static是不可以的。flyinsky10,进程是Process,Google下java process就好了