Java子线程中操作主线程Private级别数据

Posted jpfss

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java子线程中操作主线程Private级别数据相关的知识,希望对你有一定的参考价值。

两个类分别如下:

  1. <pre name="code" class="java">package Demo2;
  2. import java.util.*;
  3. class Demo2
  4. {
  5. private static ArrayList<String> a = new ArrayList<String>();
  6. public static void main(String[] args)
  7. {
  8. a.add("String0");
  9. threadDemo2 thread1 = new threadDemo2(a);
  10. new Thread(thread1).start();
  11. for(int i = 0;i<500; i++){
  12. for(int j = 0;j<500; j++)
  13. ;
  14. }
  15. for(String string : a)
  16. {
  17. sop(string);
  18. }
  19. }
  20. public static void sop(Object obj)
  21. {
  22. System.out.println(obj);
  23. }
  24. }



  1. package Demo2;
  2. import java.util.*;
  3. class threadDemo2 implements Runnable
  4. {
  5. private ArrayList<String> b;
  6. threadDemo2(ArrayList<String> a){
  7. this.b = a;
  8. }
  9. public void run()
  10. {
  11. b.add("String");
  12. }
  13. public static void sop(Object obj)
  14. {
  15. System.out.println(obj);
  16. }
  17. }


主函数中输出结果为:

String0

String

也就是在子线程中获得了ArrayList a 的地址,并对地址内的值进行了操作。



以上是关于Java子线程中操作主线程Private级别数据的主要内容,如果未能解决你的问题,请参考以下文章

Android 中handler消息机制的理解

Java中是否父线程阻塞后子线程就无法继续执行?

4.c++语言级别的多线程编程

android AsyncTask的方法在哪几个线程中调用

java基础线程池

Android 中handler消息机制的理解