WEB开发网
开发学院软件开发Java Java 多线程同步问题的探究(二、给我一把锁,我能... 阅读

Java 多线程同步问题的探究(二、给我一把锁,我能创造一个规矩)

 2010-05-14 00:00:00 来源:WEB开发网   
核心提示:在上一篇中,我们讲到了多线程是如何处理共享资源的,Java 多线程同步问题的探究(二、给我一把锁,我能创造一个规矩),以及保证他们对资源进行互斥访问所依赖的重要机制:对象锁,本篇中,我也看不出来Java程序锁住了哪个对象阿?“没错,我一开始也是对这个问题感到困惑和不解,我们来看一看传统的同步实现方式以及这背

在上一篇中,我们讲到了多线程是如何处理共享资源的,以及保证他们对资源进行互斥访问所依赖的重要机制:对象锁。

本篇中,我们来看一看传统的同步实现方式以及这背后的原理。

很多人都知道,在Java多线程编程中,有一个重要的关键字,synchronized。但是很多人看到这个东西会感到困惑:“都说同步机制是通过对象锁来实现的,但是这么一个关键字,我也看不出来Java程序锁住了哪个对象阿?“

没错,我一开始也是对这个问题感到困惑和不解。不过还好,我们有下面的这个例程:

 1 public class ThreadTest extends Thread {
 2 
 3     private int threadNo;
 4 
 5     public ThreadTest(int threadNo) {
 6         this.threadNo = threadNo;
 7     }
 8 
 9     public static void main(String[] args) throws Exception {
10         for (int i = 1; i < 10; i++) {
11             new ThreadTest(i).start();
12             Thread.sleep(1);
13         }
14     }
15 
16     @Override
17     public synchronized void run() {
18         for (int i = 1; i < 10000; i++) {
19             System.out.println("No." + threadNo + ":" + i);
20         }
21     }
22 }

1 2 3 4  下一页

Tags:Java 线程 同步

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