Synchronize锁粒度
生活随笔
收集整理的這篇文章主要介紹了
Synchronize锁粒度
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
Synchronize鎖粒度
如果,a線程調(diào)用不同的方法,執(zhí)行一個很長時間的任務(wù)
那么,b線程就必須等待很長的時間,才能執(zhí)行
可以通過減小鎖的粒度,去優(yōu)化代碼執(zhí)行時間
package com.bjsxt.base.sync006;/*** 使用synchronized代碼塊減小鎖的粒度,提高性能**/ public class Optimize {public void doLongTimeTask() {try {System.out.println("當前線程開始:" + Thread.currentThread().getName() + ", 正在執(zhí)行一個較長時間的業(yè)務(wù)操作,其內(nèi)容不需要同步");Thread.sleep(2000);synchronized (this) {System.out.println("當前線程:" + Thread.currentThread().getName() + ", 執(zhí)行同步代碼塊,對其同步變量進行操作");Thread.sleep(1000);}System.out.println("當前線程結(jié)束:" + Thread.currentThread().getName() + ", 執(zhí)行完畢");} catch (InterruptedException e) {e.printStackTrace();}}public static void main(String[] args) {final Optimize otz = new Optimize();Thread t1 = new Thread(new Runnable() {@Overridepublic void run() {otz.doLongTimeTask();}}, "t1");Thread t2 = new Thread(new Runnable() {@Overridepublic void run() {otz.doLongTimeTask();}}, "t2");t1.start();t2.start();}}運行
總結(jié)
以上是生活随笔為你收集整理的Synchronize锁粒度的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Synchronize异常释放锁
- 下一篇: Synchronize锁对象