public class Type {
private String name; //实例变量
private static String age; //类变量
public void method() {
String str = "xiongjin";// 本地变量
}
}
实例变量:每个对象都有自己的实例变量,且不能访问其他对象的实例变量
类变量:每个类的对象都可以访问的变量
本地变量:只在该变量的方法或快中有效
在多线程中,类变量、实例变量存放在主内存中,本地变量放在堆栈中;
若如果多个Thread拥有同一个实例变量,比如ThreadA和ThreadB同時擁有ClassA的對象IntanceA,ClassA中有实例变量money值为100,这时money在主内存中,ThradA和ThradB的缓存中各有money的副本,现在ThradA先修改money的值为+100,在修改的过程中(ThreadA还没有把money同步进主内存)ThreadB(此时主内存中的money值为100)也对money+100,结果是ThreadA和ThreadB各对money+100,但是实际上是只+100了一次,要解决此问题就必须实行同步
Java的内存模型JMM(Java Memory Model)JMM主要是为了规定了线程和内存之间的一些关系。根据JMM的设计,系统存在一个主内存(Main Memory),Java中所有实例变量都储存在主存中,对于所有线程都是共享的。每条线程都有自己的工作内存(Working Memory),工作内存由缓存和堆栈两部分组成,缓存中保存的是主存中变量的拷贝,缓存可能并不总和主存同步,也就是缓存中变量的修改可能没有立刻写到主存中;堆栈中保存的是线程的局部变量,线程之间无法相互直接访问堆栈中的变量
分享到:
相关推荐
这是一篇介绍IOS多线程理解的文章,简洁易懂,方便阅读
分享我对线程的理解,和大家一起学习,希望大家多指点
一个安卓聊天和客户端的小程序 初步理解客户端与服务器的连接 还有线程的使用
大家看看线程来吧,不懂的看完就懂了 不用求人
理解线程的概念 理解.NET中线程的属性和方法 创建和使用线程 理解线程的特点、优点及使用场合 在.NET程序设计中,线程是使用Thread类(或Timer类(线程计数器)、ThreadPool类(线程池))来处理的,这些类在System....
vc下创建子线程例子,解决初学者对线程理解的难度
该文档为进程与线程的生动详细地理解,个人认为讲的非常好。形象生动。
CPP线程C ++线程理解所有文件都是独立网络,而不是项目的一部分。 编译命令如下。 g ++ file_name.cpp -std = c ++ 11 -pthread
通过控件启动,暂停,继续等按钮,操作子线程,在winform控件中输出数据。对于初学者来说可以根据代码很快理解多线程,对多线程的认识
读完本文大概需要30分钟左右,本文有大量的实例代码和典型例题帮助大家理解java多线程。虽然多线程比较难以理解,仅靠一篇文章恐怕搞不定。但读完本文最起码能让你搞懂java多线程的70%以上,至于熟练运用,还是得...
此图展示了线程状态变化,可以说是线程的生命周期,有助于对多线程理解
其中包含线程的重要代码,非常好用,用于MFC中线程的使用
Python里的多线程是假的多线程,不管有多少核,同一时间只能在一个核中进行操作!利用Python的多线程,只是利用CPU上下文切换的优势,看上去像是并发,其实只是个单线程,所以说他是假的单线程。 那么什么时候用多...
理解多线程,写一个多线程应用程序,要求能在用户级实现线程的调度,如启动、挂起、恢复、停止,的C thread、java thread实现。
线程同步的理解,对多线程的探讨和例子讲解
很好的多线程例子,学习会很有用的哦,记得来下载喔,谢谢各位!
Swing线程的深入理解和SwingWorker基础知识介绍
vb.net线程理解可助于多线程的编程,这也是一些初学者不太好理解地方,通过简间代码的学习可以更好地理解多线程的作用。
一个线程可以理解为一个人,打印字母可以理解为走路 张三走一步然后李四走一步。。。所有人走完第一步后,又从张三开始走下一步。 里面一共有4中实现方式,实现线程间同步和通信问题,有synchronized实现也有...
详细的介绍了Linux下线程的概念,加深对线程的理解。