学习笔记6:synchronized关键字-->线程同步
为什么要使用关键字synchronized? java程序中可以存在多个线程,但是当多个线程操作同一资源时候,可能会导致数据不一致。 区分synchronized方法与synchronized块: synchronized方法 是一种粗粒度的并发控制,某一时刻,只能有一个线程执行该synchronized方法; synchronized块 则是一种细粒度的并发控制,只会将块中的代码同步,位于方法内、synchronized块之外的其他代码是可以被多个线程同时访问到的。 线程同步? 所谓线程同步就是若干个线程都需要使用一个synchronized(同步)修饰的方法,即程序中的若干个线程都需要使用一个方法,而这个方法用synchronized给予修饰,那么多个线程调用该方法时候必须遵守同步机制: 当一个线程A使用synchronized方法时,其他线程想使用这个synchronized方法就必须等待,直至先后才能A使用完毕。即对于synchronized修饰的方法,一次只允许一个线程访问,其他线程只能等待。 2.1 首先看看synchronized方法: public synchronized void saveOrTake(int amount){ // 这里是同步方法 } public void saveOrTake(int amount){