且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

#大学#Java多线程学习02(线程同步)

更新时间:2022-09-21 22:59:54

*所谓同步机制是指两个线程同时操作一个对象,应该保持对象数据的统一性和整体性。

*Java语言中有两种同步形式,即同步方法和同步代码块。

1,同步方法

同步方法将访问这个资源的方法都标记为synchronized,这样在需要调用这个方法的线程执行完之前,其它调用该方法的线程都会被阻塞。

synchronized void sum(){…}

synchronized void max(){…}

*创建两个线程的例子

import java.util.logging.Level; 
import java.util.logging.Logger;

public class SyncThread extends Thread { 
    private char cha; 
    public SyncThread(char cha){ 
        this.cha=cha; 
    } 
    public void run(){ 
        PrintClass.printch(cha); 
        System.out.println(); 
    } 
    public static void main(String[] args){ 
        SyncThread t1=new SyncThread('A'); 
        SyncThread t2=new SyncThread('B'); 
        t1.start(); 
        t2.start(); 
    } 

class PrintClass{ 
    public static void printch(char cha){ 
        for(int i=0;i<5;i++){ 
            try { 
                Thread.sleep(1000); 
            } catch (InterruptedException ex) { 
                Logger.getLogger(PrintClass.class.getName()).log(Level.SEVERE, null, ex); 
            } 
            System.out.print(cha); 
        } 
    } 
}

*同步块

Java语言中同步的设定不只应用于同步方法,也可以设置程序的某个代码段为同步区域。

语法格式为:

synchronized(someobject){…代码…}

本文转自 Ron Ngai 博客园博客,原文链接: http://www.cnblogs.com/rond/archive/2010/12/28/1918778.html ,如需转载请自行联系原作者