WEB开发网
开发学院软件开发Java Java多线程同步问题的探究(一、线程的先来后到)... 阅读

Java多线程同步问题的探究(一、线程的先来后到)

 2010-05-14 00:00:00 来源:WEB开发网   
核心提示:众所周知,在Java多线程编程中,Java多线程同步问题的探究(一、线程的先来后到),一个非常重要的方面就是线程的同步问题,关于线程的同步,打开房门走出来为止,这就好比多个线程共享一个资源的时候,一般有以下解决方法:1. 在需要同步的方法的方法签名中加入synchronized关键字,2. 使用synchronized

众所周知,在Java多线程编程中,一个非常重要的方面就是线程的同步问题。

关于线程的同步,一般有以下解决方法:

1. 在需要同步的方法的方法签名中加入synchronized关键字。

2. 使用synchronized块对需要进行同步的代码段进行同步。

3. 使用JDK 5中提供的java.util.concurrent.lock包中的Lock对象。

另外,为了解决多个线程对同一变量进行访问时可能发生的安全性问题,我们不仅可以采用同步机制,更可以通过JDK 1.2中加入的ThreadLocal来保证更好的并发性。

本篇中,将详细的讨论Java多线程同步机制,并对ThreadLocal做出探讨。

大致的目录结构如下:

一、线程的先来后到——问题的提出:为什么要有多线程同步?Java多线程同步的机制是什么?

二、给我一把锁,我能创造一个规矩——传统的多线程同步编程方法有哪些?他们有何异同?

三、Lock来了,大家都让开—— Java并发框架中的Lock详解。

四、协作,互斥下的协作——Java多线程协作(wait、notify、notifyAll)

五、你有我有全都有—— ThreadLocal如何解决并发安全性?

六、总结——Java线程安全的几种方法对比。

一、线程的先来后到

我们来举一个Dirty的例子:某餐厅的卫生间很小,几乎只能容纳一个人如厕。为了保证不受干扰,如厕的人进入卫生间,就要锁上房门。我们可以把卫生间想象成是共享的资源,而众多需要如厕的人可以被视作多个线程。假如卫生间当前有人占用,那么其他人必须等待,直到这个人如厕完毕,打开房门走出来为止。这就好比多个线程共享一个资源的时候,是一定要分出先来后到的。

1 2 3  下一页

Tags:Java 线程 同步

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接