JAVA多线程——共享变量

今天看到java的多线程,感到十分激动,之前就在python中使用过多线程和多进程,十分强大,但是对于其中的理论却并不是十分理解,因此希望借此机会能够使得理论知识有所长进。 首先进程和线程是两个概念,一个进程就是一段静态的代码,我的理解就是一次从头到尾的代码的执行,打开windows的任务管理器就能感到进程栏,每一个application都是一个进程,windows就是多进程执行的。而线程是一个更小的单位,一个进程中国可以很多个线程,而且线程间是可以共享变量,进行数据交互的,所以我的理解是线程其实不是独立的,是彼此间有交流的,而进程则就是真正的独立的一个任务阶段了。今天看到唐大仕老师的java程序设计一书的P214的多线程代码的例子感到疑惑,为什么共享了一个对象,而部分变量是共享的部分确实独立的,看了本文终于理解,临时变量是不共享的,因为一个线程有一个独立的内存,而临时变量是在线程创建后建立的,临时变量存在于各个线程的内存之中,因此也是独立的,而共享变量则用的是这个变量的内存,修改后则这个内存中的值修改了,就是做到了真正的共享。 以下便是转载的博客原文。
原文链接:https://www.cnblogs.com/xudong-bupt/archive/2013/05/22/3087864.html


在这里插入图片描述