精品专区-精品自拍9-精品自拍三级乱伦-精品自拍视频-精品自拍视频曝光-精品自拍小视频

網站建設資訊

NEWS

網站建設資訊

Java中怎么創建自己的線程對象-創新互聯

本篇內容主要講解“Java中怎么創建自己的線程對象”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“Java中怎么創建自己的線程對象”吧!

創新互聯公司是一家專注于成都做網站、成都網站建設與策劃設計,灣里網站建設哪家好?創新互聯公司做網站,專注于網站建設十多年,網設計領域的專業建站公司;建站業務涵蓋:灣里等地區。灣里做網站價格咨詢:028-86922220

默認情況下,主線程和垃圾回收線程都是由系統創建的,但是我們需要完成自己的功能----創建自己的線程對象。

 * java將線程面向對象了,形成的類就是Thread,在Thread類內部執行任務的方法叫run()

 *

 * 注意:如果想讓run作為任務區,必須讓他去被自動調用.我們通過執行start()方法,來開啟線程,繼而實現run方法的自動調用.

## 直接使用Thread創建線程對象

//  //分析:由于我們實現的實際功能Thread類是決定不了的,所以沒有辦法將我們的功能放入Thread的run方法里

//  //所以Thread的run 方法是一個空方法.如果我們想實現自己的功能,可以寫Thread類的子類,重寫run方法

當我們手動調用run的時候,他失去了任務區的功能,變成了一個普通的方法.

//當run作為一個普通方法時,內部對應的線程跟調用他的位置保持一致.

##  鎖的條件:

   * 1.鎖必須是對象      普通的對象/this/字節碼文件

 * 2.要被所有的線程共享

 *

 * 注意:字節碼文件的使用范圍太大,一般不建議使用.

空喚醒

##  Lock鎖

使用步驟

1.創建ReentrantLock lock = new ReentrantLock();對象,需要注意的是多個線程必須使用同一個

2.把之前的synchronized(鎖){ 用lock.lock()替換

3.把}  用lock.unlock();替換

好處

1.不要考慮鎖對象

2.代碼看起來更加簡潔了

3.可以使用try..catch..finaly把lock.unlock放到finaly中,好處是如果該線程發生了異常,照樣可以釋放鎖

## 比較synchronized和Lock

 * 1.synchronized:從jdk1.0就開始使用的同步方法-稱為隱式同步

  *  synchronized(鎖對象)

  *  {//獲取鎖      我們將鎖還可以稱為鎖旗艦或者監聽器

       同步的代碼}//釋放鎖

 * 2.Lock:從jdk1.5開始使用的同步方法-稱為顯示同步

 * 原理:Lock本身是接口,要通過他的子類創建對象干活兒

 * 使用過程:

 * 首先調用lock()方法獲取鎖

 * 進行同步的代碼塊兒

 * 使用unlock()方法釋放鎖

 * 使用的場景:

 * 當進行多生產者多消費者的功能時,使用Lock,其他的都使用synchronized

 * 使用效率上:Lock高于synchronized

## 多線程的單例

//餓漢式,由于公共方法中只有一行公共的代碼,所以不會產生線程安全問題

class SingleInstance1{

private static final SingleInstance1 s = new SingleInstance1();

private SingleInstance1() {

}

public static SingleInstance1 getInstance() {

return s;

}

}

//懶漢式,

class SingleInstance2{

private static  SingleInstance2 s = null;

private SingleInstance2() {

}

public  static SingleInstance2 getInstance() {

if (s == null) {//盡量減少線程安全代碼的判斷次數,提高效率

synchronized (SingleInstance2.class) {//使用同步代碼塊兒實現了線程安全

if (s == null) {

s = new  SingleInstance2();

}

}

}

return s;

}

## 線程停止

1.通過一個標識結束線程

2.調用stop方法---因為有固有的安全問題,所以系統不建議使用.

3.調用interrupt方法----如果目標線程等待很長時間(例如基于一個條件變量),則應使用 interrupt 方法來中斷該等待。

到此,相信大家對“Java中怎么創建自己的線程對象”有了更深的了解,不妨來實際操作一番吧!這里是創新互聯網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!


分享名稱:Java中怎么創建自己的線程對象-創新互聯
網站路徑:http://m.jcarcd.cn/article/dhjijs.html
主站蜘蛛池模板: 国产在线观看精 | 日韩精品A| 日韩亚洲欧美系列 | 69老司机午夜免费 | 国产乱子伦高清对白 | 日本一卡亚洲精品 | 日韩在线观看视频黄 | 日本aⅴ网站 | 91国内| 另类激情文学一 | 成人看片网站 | 福利在线免费 | 国产福利一区二区久 | 91短视| 欧美综合在线五 | 乱理伦片免费观看 | 国产91椰子哥高 | 99精品热| 欧美一级夜夜爽 | 日本福利 | 欧美中文字幕第一页 | 日本大片在线 | 中文字幕在线永久 | 国产在线观看高 | 午夜综合网| 欧美亚洲综合一区 | 国产普通话对白 | 九九中文字幕国产 | 频精品99 | 国产伦码精品一 | 国产另类亚洲日韩 | 精品入口欧亚色大 | 日本成人xxx在线 | 国产高清亚洲免费片 | 国产不卡免费 | 精品欧美А∨被黑人 | 国产欧美日本在 | 国内在线第一区 | 日韩女神精品自拍 | 国产视频欧美综合 | 国产福利高颜 |