java全局变量在线程中应用
来源:互联网 发布:淘宝店铺主营 编辑:程序博客网 时间:2024/05/01 17:27
package com.example.testglobal;import android.app.Activity;import android.os.Bundle;import android.util.Log;import android.view.Menu;import android.view.MenuItem;import android.widget.TextView;public class MainActivity extends Activity {TextView textView;int a=0;int b;NewThread newThread;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);textView=(TextView)findViewById(R.id.text1);a=12;newThread=new NewThread();newThread.start();Log.e("dfs", "after Thread");textView.append(""+a);//测试while中全局变量变化Log.e("fdsa", "before while b--->"+b);while(true){b++;Log.e("fdsa", "b-->"+b);if (b>5) {break;}}Log.e("fdsa","after while b--->"+b);}class NewThread extends Thread{//测试在另外类中全局变量的变化@Overridepublic void run() {// TODO Auto-generated method stubsuper.run();a+=10;Log.e("fda", "in the Thread a --->"+a);}}}
打印结果:
问题:
为什么有时手机打印12,有时又打印22:?
从图片上可以看出:打印12时,是先显示“after Thread”也就是说线程在textView.append(""+a);之后才执行的,测试线程还为执行,所以打印12。当然打印22时是在线程执行之后得到结果赋给了全局变量。在程序中我们使用线程时因为它处理比较耗时的操作,Activity也不能等着处理(如果放在主程序中则会显示程序长时间无响应,会被关闭),用的时候要注意。
0 0
- java全局变量在线程中应用
- 在Flex应用中使用全局变量
- 在Flex应用中使用全局变量
- 在linux环境中配置java全局变量
- 编程技巧:在Java应用开发中如何使用线程
- java线程池在web项目中应用
- ios app应用中在AppDelegate设置全局变量
- Java中线程应用总结
- 信号量在Java线程中的应用
- java线程在项目中的应用场景
- 在Flex应用中使用全局变量以及学习中flex中需要的一些资料
- 在子线程中改变一个全局变量,然后再通知主线程
- 在C#中定义全局变量
- 在JS中使用全局变量
- 全局变量在函数中改变
- 在PHP中使用全局变量
- 在配置文件中设置全局变量
- 在AppDelegate中设置全局变量
- OC中Foundation框架知识总结
- iOS-蓝牙简介及CoreBluetooth.framework的使用
- POJ 3258 River Hopscotch (二分)
- [Android-Eclipse] 在cmd里面运行adb命令的时候提示:adb server is out of date. killing...
- 2015第一博,Oracle时间段查询,TO_DATE和TO_CHAR使用对比
- java全局变量在线程中应用
- Android NDK开发指南(一) Application.mk文件
- Caused by: org.apache.ibatis.reflection.ReflectionException我碰到的情况,原因不唯一
- 好记性不如烂笔头38-java监听windows窗口事件Listener(2)
- 循环语句--for语句
- 对梯度下降的简单理解
- C# 利用Newtonsoft.Json进行Json序列化与反序列化
- 常用的兼容IE和火狐FF等浏览器的js方法
- # Android中Activity四种启动模式和taskAffinity属性详解 #(4)