synchronized(this) Java菜鸟求助synchronized(this)问题

\u5173\u4e8e Java synchronized(this) \u7684\u95ee\u9898\uff1f

synchronized(this)

\u8fd9\u91cc\u7684this\u662f\u6307\u5f53\u524d\u5bf9\u8c61,\u4e5f\u5c31\u662f\u8bf4\u4e0d\u7ba1ta\u8fd8\u662ftb,\u521a\u5f00\u59cb\u8fd0\u884c\u8fd9\u6bb5\u4ee3\u7801\u7684\u65f6\u5019\u4f1a\u7ed9\u8fd9\u6bb5\u4ee3\u7801\u52a0\u4e2a\u9501,\u8fd9\u6837\u5373\u4f7f\u8fd0\u884c\u5230\u4e2d\u95f4\u88ab\u66ff\u6362\u4e86,\u53e6\u4e00\u4e2a\u7ebf\u7a0b\u4e5f\u4e0d\u4f1a\u6267\u884c\u8fd9\u6bb5\u4ee3\u7801,\u56e0\u4e3a\u8fd9\u6bb5\u4ee3\u7801\u52a0\u9501\u4e86,\u800c\u94a5\u5319\u5728\u7ed9\u4ee3\u7801\u52a0\u9501\u7684\u90a3\u4e2a\u7ebf\u7a0b\u624b\u91cc,\u53ea\u6709\u52a0\u9501\u7684\u7ebf\u7a0b\u8fd0\u884c\u5b8c\u8fd9\u6bb5\u4ee3\u7801,\u624d\u4f1a\u7ed9\u4ee3\u7801\u89e3\u9501.\u7136\u540e\u5176\u4ed6\u7ebf\u7a0b\u624d\u80fd\u6267\u884c\u8fd9\u6bb5\u4ee3\u7801..

\u52a0\u4e2asynchronized(this)\u4ee5\u540e\u8fd0\u884c\u7ed3\u679c\u662f\u8fd9\u6837:
A synchronized loop 0
A synchronized loop 1
A synchronized loop 2
A synchronized loop 3
A synchronized loop 4
B synchronized loop 0
B synchronized loop 1
B synchronized loop 2
B synchronized loop 3
B synchronized loop 4

\u4e0d\u52a0\u7684\u8bdd\u662f\u8fd9\u6837:(\u987a\u5e8f\u4e71\u4e86,\u6709\u597d\u591a\u79cd\u7ed3\u679c,\u8fd9\u91cc\u53ea\u662f\u5176\u4e2d\u4e00\u79cd)..
A synchronized loop 0
B synchronized loop 0
A synchronized loop 1
B synchronized loop 1
A synchronized loop 2
B synchronized loop 2
A synchronized loop 3
B synchronized loop 3
B synchronized loop 4
A synchronized loop 4

\u8ddfjava\u865a\u62df\u673a\u7684\u5b9e\u73b0\u6709\u5173\uff0c\u6dfb\u52a0\u4e86\u6253\u5370\u8bed\u53e5\uff0c\u63d0\u4f9b\u4e86\u7cfb\u7edf\u7684\u4e2d\u65ad\u53ef\u80fd\uff0c\u540e\u542f\u52a8\u7684\u7ebf\u7a0b\u4e00\u76f4\u6301\u6709\u8d44\u6e90\u4e86\uff0c\u56e0\u4e3aThead0,1,2,3\u7684\u4f18\u5148\u7ea7\u4e00\u6837\uff0c
\u4fee\u6539\u4e0a\u9762\u4ee3\u7801\uff0c\u4fee\u6539thread3\u7684\u4f18\u5148\u7ea7\uff0cthread3\u5c31\u4e0d\u4f1a\u542f\u52a8\u4e86
public static void main(String[] args) {
SellThread st=new SellThread();

Thread t0 = new Thread(st);
Thread t1 = new Thread(st);
Thread t2 = new Thread(st);
Thread t3 = new Thread(st);
t0.start();
t1.start();
t2.start();
t3.setPriority(Thread.MIN_PRIORITY);
}

synchronized(this)里的this 是指当前class的实例

这个当前class是 Thread1,所以Thread1的实例在main方法里是

Thread1 t1 = new Thread1();

也就是t1,所以当ta和tb运行起来的时候,锁了同一个对象t1,自然就会引发阻塞

  • Java瀹炵幇閫氱敤绾跨▼姹
    绛旓細public synchronized PooledThread getIdleThread() { while(true) { for(Iterator itr=erator(); itr hasNext();) { PooledThread th = (PooledThread)itr next(); if(!th isRunning()) return th; } if(getPoolSize() < maxPoolSize) { PooledThread thread = new PooledThread(this); thread st...
  • 姹傜數姘斿伐绋嬪強鍏惰嚜鍔ㄥ寲鑻辨枃璁烘枃涓绡 鍐呭涓嶉檺 棰樼洰瑕佺炕璇戝ソ 璋㈣阿_鐧惧害...
    绛旓細inverter-preferred, should be continuously synchronized tothe utility line. When an overload or ...Th.e results reported here show theeffectiveness of the proposed approach. 鏈洖绛旂敱鎻愰棶鑰呮帹鑽
  • 鑻辫濂界殑杩涳綖璇寸偣鍏充簬濂ヨ繍鐨勮嫳璇瘝姹
    绛旓細Men's/Women's Synchronized 3m springboard 鐢峰瓙/濂冲瓙3绫冲弻浜鸿烦鏉 娓告吵:swimming400 medley 400绫虫贩鍚堟吵 freestyle 鑷敱娉 breaststroke 铔欐吵 butterfly 铦舵吵 backstroke 浠版吵 Men's/Women's 4x100 freestyle 鐢峰瓙/濂冲瓙4x100娣峰悎娉虫帴鍔 鍒掕埞:rowing08濂ヨ繍鐗堢航绾︽椂鎶ユ瘡鍛ㄧ簿閫夊巻灞婂ゥ杩愭瓕鏇插洖椤惧寳浜ゥ杩3000涓彍鍝佺殑鑻辨枃缈昏瘧...
  • 璋佺煡閬撳悇绉嶄綋鑲查」鐩殑鑻辫?
    绛旓細Men's/Women's Synchronized 3m springboard 鐢峰瓙/濂冲瓙3绫冲弻浜鸿烦鏉 娓告吵锛歴wimming 400 medley 400绫虫贩鍚堟吵 freestyle 鑷敱娉 breaststroke 铔欐吵 butterfly 铦舵吵 backstroke 浠版吵 Men's/Women's 4x100 freestyle 鐢峰瓙/濂冲瓙4x100娣峰悎娉虫帴鍔 鍒掕埞锛歳owing canoe/kayak 鍒掔毊鑹 canoe slalom 杞昏垷婵娴 sailing ...
  • 鏈夊叧濂ヨ繍鐨勮嫳璇瘝姹!
    绛旓細put 鎺ㄩ搮鐞  discus 閾侀ゼ  weight throw 閾剧悆  gavelock;javelin 鏍囨灙  decathlon 鐢峰瓙鍗侀」鍏ㄨ兘锛100绫宠窇銆佽烦杩溿侀搮鐞冦佽烦楂樸400绫宠窇锛110绫宠法鏍忚窇銆侀搧楗笺佹拺绔胯烦楂樸佹爣鏋1500绫宠窇锛  heptathlom 濂冲瓙涓冮」鍏ㄨ兘锛...
  • 姹傚ゥ杩愯嫳璇
    绛旓細"One world, one dream," I hope my dream will become a reality.鈥滃悓涓涓笘鐣岋紝鍚屼竴涓ⅵ鎯斥濓紝鎴戝笇鏈涙垜鐨勬ⅵ鎯宠兘澶熷彉涓虹幇瀹炪侭eijing Olympic Games must be a true "Green Olympics, People's Olympics, Hi-tech Olympics" from ourselves and from now on.鍖椾含濂ヨ繍蹇呭畾浼氬姙鎴愪竴涓湡姝g殑鈥...
  • java绾跨▼姹犳庝箞瀹炵幇鐨
    绛旓細// 宸ヤ綔绾跨▼ private WorkThread[] workThrads; // 鏈鐞嗙殑浠诲姟 private static volatile int finished_task = 0; // 浠诲姟闃熷垪锛屼綔涓轰竴涓紦鍐,List绾跨▼涓嶅畨鍏 private List<Runnable> taskQueue = new LinkedList<Runnable>(); private static ThreadPool threadPool; //...
  • 59涓叧浜庡ゥ杩愮殑鑻辫鍙ュ瓙
    绛旓細heptathlom 濂冲瓙涓冮」鍏ㄨ兘(100绫宠法鏍忚窇銆佽烦楂樸侀搮鐞冦200绫宠窇銆佽烦杩溿佹爣鏋800绫宠窇) triathlon 閾佷汉...Men's/Women's Synchronized 3m springboard 鐢峰瓙/濂冲瓙3绫冲弻浜鸿烦鏉 娓告吵:swimming400 medley 400绫
  • 扩展阅读:synchronic study ... concurrenthashmap ... porphyromonas ... phoenix contact ... synchronization error ... morphy richards ... simultaneously ... wurth elektronik ... performance ...

    本站交流只代表网友个人观点,与本站立场无关
    欢迎反馈与建议,请联系电邮
    2024© 车视网