码迷,mamicode.com
首页 > 编程语言 > 详细

java多线程(2) 线程同步

时间:2017-07-04 01:05:23      阅读:280      评论:0      收藏:0      [点我收藏+]

标签:tac   code   img   console   override   stat   system   set   访问   

我们对线程访问同一份资源的多个线程之间,来进行协调的这个东西,就是线程同步。
 
例子1:模拟了多个线程操作同一份资源,可能带来的问题:
技术分享
package com.cy.thread;

public class TestSync implements Runnable{
    Timer timer = new Timer();
    public static void main(String[] args) {
        TestSync test = new TestSync();
        Thread t1 = new Thread(test);
        Thread t2 = new Thread(test);
        t1.setName("t1");
        t2.setName("t2");
        t1.start();
        t2.start();
    }
    
    @Override
    public void run() {
        timer.add(Thread.currentThread().getName());
    }

}

class Timer{
    private static int num = 0;
    public void add(String name){
        num++;
        try {
            Thread.sleep(1);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
        System.out.println(name+",你是第"+num+"个使用timer的线程");
    }
}
View Code
两个线程访问的都是time对象;访问的都是time对象中的add方法;
但是console打印出来是:
技术分享
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

java多线程(2) 线程同步

标签:tac   code   img   console   override   stat   system   set   访问   

原文地址:http://www.cnblogs.com/tenWood/p/7113646.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!