1. 程式人生 > >java多線程(2) 線程同步

java多線程(2) 線程同步

setname 我們 可能 pac 對象 try 資源 spl main

我們對線程訪問同一份資源的多個線程之間,來進行協調的這個東西,就是線程同步。 例子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) 線程同步