线程安全浅浅说

  平时工作中没有机会接触线程安全方面的内容,所以对线程安全停留在一个比较模糊的概念.今天看了一些博文有了新的认识,那就把他写下来吧.

  线程安全就是多个线程对资源的有序访问和修改,而保证线程安全主要要解决线程的可见性和有序性.

  那么何为线程的可见性呢?

  首先要了解java的内存模型,java内存模型划分了主内存和工作内存,主内存是被多个线程所共享的,而线程独享各自的工作内存.new一个对象时,会在主内存分配一个空间,各个工作内存也会保存一个该对象的变量副本.线程之间不能直接传递数据,而是通过共享变量来沟通.当某个线程需要访问对象是,他的流程是:  1.复制一个变量副本到工作内存.  2.访问,修改.  3.将工作内存中的修改刷新到主内存. 那么所谓的线程可见性就是当其中一个线程修改了共享变量,其他线程能看到被修改后的值.

  那么何为有序性呢?

  我饿了.我回来了...我个人理解有序性就是线程引用变量和对变量进行操作需要保证在一个原子操作...

  我现在理解还是很显浅的,以后会更新的.

posted @ 2012-11-12 16:56  初水平  阅读(384)  评论(1)    收藏  举报