java中开启子线程后主线程中传入的变量不变

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java中开启子线程后主线程中传入的变量不变相关的知识,希望对你有一定的参考价值。

参考技术A 使用回调,变量改变。
在主线程中对类C的实变量进行设置,然后输出变量开启子线程,通过构造函数传入变量,在子线程中改变变量的值子线程中调用主线程的静态方法传递数据给主线程说明子线程执行结束子线程结束后在主线程中查看变量已经发生改变。
每个线程都有一个唯一标示符,来区分线程中的主次关系的说法, 线程唯一标示符,Thread.CurrentThread.ManagedThreadID。

android中怎样让main线程和子线程同步一个变量

1、检查Thread,确定没有在Background thread中直接调用adapter,如果有,请移除相关代码到Handler中处理;
2、尽量将数据放在adapter类中管理,不需要的时候清除信息(勤写clear()),及时用notifyDataSetChanged()刷新;
3、在Activity或者Fragment合适的位置(onPause/onStop)要及时检查thread,有adapter数据处理相关的应马上停止;
4、这个错误经常出现在Activity休眠起来之后,主要还是使用adapter不太小心造成的。如果实在找不到原因,在onPause()函数中停止所有的background thread,并且在onResume()函数最前面清空adapter中的数据,并且adapter.notifyDataSetChanged()。然后重新更新加载数据,这样一般可以解决问题。
参考技术A 多线程资源映射

以上是关于java中开启子线程后主线程中传入的变量不变的主要内容,如果未能解决你的问题,请参考以下文章

如何确保只有在子线程启动后主线程才能继续?

Linux中线程的挂起与恢复(进程暂停)

windows API主线程如何等待子线程结束后再继续运行

android创建子线程

[Java][Android] 多线程同步-主线程等待全部子线程完毕案例

ios子线程怎样能开启NSTimer