Synchronized

线程同步机制

1、在多线程编程,一些敏感数据不允许被多个线程同时访问,此时就采用同步访问技术,保证数据在任何同一时刻,最多有一个线程访问,以保证数据的完整性

2、也可以理解为:线程同步,即当有一个线程在对内存进行操作时,其他线程都不可以对这个内存地址进行操作,直到该线程完成操作,其他内存才能对该内存地址进行操作

 

同步代码块:

  Synchronized(对象){//得到对象的锁,才能操作同步代码块

    //需要被同步的代码 

  }

Synchronized还可以放在方法声明中,表示整个方法-为同步方法

  pubilc Synchronized void sell(){

    //需要被同步的代码

  }

 

class Dog implements Runnable {

int count = 0;

public synchronized void sell(){ //同步方法,在同一时刻,只能有一个线程在执行此方法
System.out.println("Hi:" + (++count) + " 线程名称= " + Thread.currentThread().getName());

// Ctrl + Alt + T
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
throw new RuntimeException(e);
}
if (count == 10) {
return;
}
}

@Override
public void run() {//通过实践Runnable接口来实现线程


while (true) {

sell();

}


}
}
posted @ 2023-04-06 16:34  霍叔  阅读(12)  评论(0编辑  收藏  举报