Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/398.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/multithreading/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ssh/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 是否可以在同一程序的多个实例的多个线程之间进行通信?_Java_Multithreading_Swing_Multiple Instances - Fatal编程技术网

Java 是否可以在同一程序的多个实例的多个线程之间进行通信?

Java 是否可以在同一程序的多个实例的多个线程之间进行通信?,java,multithreading,swing,multiple-instances,Java,Multithreading,Swing,Multiple Instances,我正在制作一个桌面java程序,来自不同计算机的多个人将同时访问该程序,因为它位于共享驱动器上。该程序将用户输入写入excel文件,因此我想知道同一程序的不同实例是否可以做到这一点,或者每次有人打开该程序时我是否必须创建另一个线程? 我不知道如何使用线程。是的,这是可能的。如果它们都写入共享驱动器上的同一个Excel文件,则必须对该文件实施某种形式的锁定,以便该文件不会被同时写入的多个应用程序实例损坏。如果他们使用该应用程序在自己的计算机上编写新的Excel文件,而共享驱动器只是用作应用程序服务

我正在制作一个桌面java程序,来自不同计算机的多个人将同时访问该程序,因为它位于共享驱动器上。该程序将用户输入写入excel文件,因此我想知道同一程序的不同实例是否可以做到这一点,或者每次有人打开该程序时我是否必须创建另一个线程?
我不知道如何使用线程。

是的,这是可能的。如果它们都写入共享驱动器上的同一个Excel文件,则必须对该文件实施某种形式的锁定,以便该文件不会被同时写入的多个应用程序实例损坏。如果他们使用该应用程序在自己的计算机上编写新的Excel文件,而共享驱动器只是用作应用程序服务器,他们可以从中找到您的应用程序,您甚至不必这样做


在这种情况下,您不必担心线程问题,因为应用程序的每个实例都可以是单线程的。这是一种多处理而不是多线程的情况。

每个用户都将在自己的机器上下文本地运行自己的进程。多线程不起作用,但如果它们试图更新同一个文件,则会出现问题,因为两个人可能同时编写内容,在数据中造成损坏…这就是我们拥有数据库服务器的原因…?@DavidPostill FileLock依赖于操作系统,我有一些跨网络驱动器失败的用例…只是说;)@MadProgrammer很高兴知道,您是否在任何地方记录了失败的用例?请注意,每个用户都将在自己的机器上运行自己的java进程-因此将运行多个线程,但它们将在单独的JVM上运行。术语“多线程”通常意味着在同一个JVM上运行多个线程。我原本计划让它们都写入共享驱动器中的一个excel文件,但现在,我想我可以让每个应用程序在共享驱动器中创建一个新的文本文件,然后再运行另一个程序,从每个文件中获取文本,然后将其添加到excel文件中。