国产探花免费观看_亚洲丰满少妇自慰呻吟_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ā)表
主站蜘蛛池模板: 永城市| 黄石市| 大余县| 建湖县| 德化县| 巴中市| 昭通市| 客服| 恭城| 苗栗市| 广宗县| 略阳县| 历史| 晋宁县| 淳安县| 阳信县| 辉县市| 怀柔区| 临夏县| 那曲县| 泾源县| 松滋市| 航空| 邢台市| 夹江县| 称多县| 阿克苏市| 定陶县| 孝感市| 云浮市| 荥经县| 武隆县| 寿光市| 长乐市| 呼和浩特市| 阿巴嘎旗| 西昌市| 都江堰市| 文山县| 石楼县| 霍州市|