Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/304.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
如何在java中更新线程中使用的变量的值_Java_Multithreading - Fatal编程技术网

如何在java中更新线程中使用的变量的值

如何在java中更新线程中使用的变量的值,java,multithreading,Java,Multithreading,在java程序中,我跨多个线程运行相同的函数。 我想做的是-- 识别特定的运行线程——例如,如果有两个运行线程,如何从外部函数访问其中一个线程?(外部函数是具有线程的同一java应用程序的一部分) 假设有一个名为“x”的变量正在上述两个线程中使用。我可以在thread1和thread2中分别存储和检索“x”的值吗?这是线程中使用的任何变量的默认行为吗 访问/更新特定线程中变量的值——例如,我希望在“线程1”中使用“x”时更新它的值 终止一个(特定)正在运行的线程。例如,我希望终止线程1(从上面的

在java程序中,我跨多个线程运行相同的函数。 我想做的是--

  • 识别特定的运行线程——例如,如果有两个运行线程,如何从外部函数访问其中一个线程?(外部函数是具有线程的同一java应用程序的一部分)
  • 假设有一个名为“x”的变量正在上述两个线程中使用。我可以在thread1和thread2中分别存储和检索“x”的值吗?这是线程中使用的任何变量的默认行为吗
  • 访问/更新特定线程中变量的值——例如,我希望在“线程1”中使用“x”时更新它的值
  • 终止一个(特定)正在运行的线程。例如,我希望终止线程1(从上面的2个运行线程)
  • 回答

  • 有两种方法可以做到这一点。你也可以; 名为
    ThreadUtil
    的Util类及其内部有一个
    静态集
    。您可以添加创建的线程,以便在线程完成执行时进行设置和删除。 或者,您可以从
    ThreadPoolExecutor
    扩展并覆盖方法
    beforexecute
    afterExecute
    来执行上述相同的操作。您可以使用集合来获取正在运行的线程。如果要按名称存储和检索,可以使用映射
  • 这可以通过使用
    ThreadLocal
    类实现。请参阅关于如何使用
    ThreadLocal
  • 可以使用
    ThreadLocal
  • 您可以使用线程中的标志(
    boolean stop
    )以及将该标志设置为
    true

  • 你的意思是跨线程访问?不,我的意思是从一个可以独立于运行线程调用的函数访问变量/特定线程。。。