国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Java > 正文

Java復習之線程的同步與死鎖

2019-11-06 07:00:29
字體:
來源:轉載
供稿:網(wǎng)友

這篇博客主要是復習一下java中線程的同步與死鎖。

1.多線程共享數(shù)據(jù)

在多線程的操作中,多個線程有可能同時處理同一個資源,這就是多線程的共享數(shù)據(jù)

2.線程同步

解決數(shù)據(jù)共享問題,必須使用同步,**所謂同步就是指多個線程在同一個 時間段內只能有一個線程執(zhí)行指定代碼,其他線程要等待此線程完成之后才可以繼續(xù)執(zhí)行。**

線程進行同步,有以下兩種方法

(1)同步代碼塊

synchronized(要同步的對象) { 要同步的操作; }

(2)同步方法

public synchronized void method() { 要同步的操作; }

** * 多線程共享數(shù)據(jù)的安全問題,使用同步方式解決 * 1.同步代碼塊 * 2.同步方法 * 同步代碼會帶來性能降低的問題,提高數(shù)據(jù)的安全性 */public class ThreadDemo { public static void main(String args[]) { MyThread myThread=new MyThread(); //共享一個對象 Thread thread=new Thread(myThread,"小白"); Thread thread1=new Thread(myThread,"鳳鳳"); thread.start(); thread1.start(); }}class MyThread implements Runnable{ //在run()方法的外部創(chuàng)建標記對象 //同步標記對象,一個鎖,進門關鎖,出門開鎖 Object object =new Object(); @Override public void run() { doMethod(); //同步代碼塊 // synchronized (object) // { // System.out.3.同步準則

當編寫synchronized塊時,有幾個簡單的準則在避免死鎖和性能危險的風險方面有很大的幫助

(1)使代碼塊保持簡短。把不隨線程變化的預處理和后處理移出synchronized塊。

(2)不要阻塞。如InputStream.read()

(3)在持有鎖的時候,不要對其它對象調用方法。

4.線程死鎖

過多的同步有可能出現(xiàn)死鎖,死鎖的操作一般是在程序運行的時候才有可能出現(xiàn)。

多線程中要進行資源的共享,就需要同步,但是同步過多,就可能造成死鎖


發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 新绛县| 水富县| 华池县| 那曲县| 本溪| 文安县| 宁武县| 周宁县| 探索| 松原市| 镇原县| 吴忠市| 阜新市| 星子县| 出国| 通江县| 肃北| 云南省| 上犹县| 大庆市| 虎林市| 修武县| 三门峡市| 都兰县| 淮阳县| 舞阳县| 泽州县| 青铜峡市| 全州县| 余姚市| 神池县| 衢州市| 唐海县| 资中县| 福建省| 山西省| 肃宁县| 麻阳| 茂名市| 保康县| 双流县|