首頁 Java java教程 Java多執行緒應用方法全解密

Java多執行緒應用方法全解密

Dec 15, 2016 am 10:04 AM

Java多執行緒是我們很多時候都會用到的,在不斷學習的過程中有很多的應用方法。下面我們就來學習下這些關鍵的方法。希望大家有幫助。首先我們先來看看具體的方法分類。

  Java多執行緒程式中常用到的方法有以下幾個:run(),start(),wait(),sleep(),notify(),notifyAll(),yield(),join(),還有一個重要的關鍵字synchronized。下面分別對這些方法進行解釋:

  一、run()和start()

  這兩個方法應該都比較熟悉,把需要並行處理的程式碼放在run()方法中,start()方法啟動執行緒將自動呼叫run()方法,這是由Java的記憶體機制規定的。且run()方法必須是public存取權限,傳回值類型為void。

  二、關鍵字Synchronized

  這個關鍵字用於保護共享數據,當然前提是要分清哪些數據是共享數據。每個物件都有一個鎖標誌,當一個執行緒存取該物件時,被Synchronized修飾的資料將被“上鎖”,阻止其他執行緒存取。當前線程訪問完這部分資料後釋放鎖標誌,其他線程就可以存取了。

  1.public ThreadTest implements Runnable

  2.{

  3.public synchronized void run(){

〔145%; {

  6. System.out.println(" " + i);

  7.}

  8.}

  9.public static void main(String[] args)

〜〜〜〦1. readTest ();

  12.Runnable r2 = new ThreadTest();

  13.Thread t1 = new Thread(r1);

＀14.Th ;

  16.t2.start();

  17.}

  18.}

  以上這段程序中未起作用的變量並不是共享數據,也就是這裡的關鍵字並未起作用。因為t1,t2兩個執行緒是兩個物件(r1,r2)的執行緒。不同的物件其資料是不同的,所以r1和r2兩個物件的i變數是並不是共享資料。

  當把程式碼改成如下:Synchronized關鍵字才會起作用

  19.Runnable r = new ThreadTest();

  20.Thread ThreadTest();

  20.Thread 1 = new Thread( (r);

  22.t1.start();

  23.t2.start();

  以上就是對Java cn)!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

揭秘HTTP狀態碼460的出現原因 揭秘HTTP狀態碼460的出現原因 Feb 19, 2024 pm 08:30 PM

解密HTTP狀態碼460:為什麼會出現這個錯誤?引言:在日常的網路使用中,常常會遇到各種各樣的錯誤提示,其中包括HTTP狀態碼。這些狀態碼是HTTP協定定義的一種機制,用來指示請求的處理。在這些狀態碼中,有一種比較罕見的錯誤碼,即460。本文將深入探討這個錯誤碼,並解釋為什麼會出現這個錯誤。 HTTP狀態碼460的定義:首先,我們要先了解HTTP狀態碼的基

word解密怎麼設定 word解密怎麼設定 Mar 20, 2024 pm 04:36 PM

現今的工作環境中,大家的保密意識越來越強了,在使用軟體的時候也常常進行加密操作,對文件進行保護。尤其是重點的文件,保密意識更要增加,時時刻刻將文件的安全性放在首要位置。那麼關於word解密不知道大家理解得怎麼樣,具體該如何操作?今天我們就透過下文的講解為大家實際展示一下關於word解密的過程,需要學習word解密知識的小夥伴不要錯過今天的課程。首先需要進行解密操作來保護文件,這意味著對文件進行了保護文檔處理。在對文件進行此處理後,再次開啟文件會彈出提示。解密檔案的方法是輸入密碼,這樣就可以直接

ThinkPHP6資料加密與解密:保護敏感資料安全 ThinkPHP6資料加密與解密:保護敏感資料安全 Aug 25, 2023 pm 10:52 PM

ThinkPHP6資料加密與解密:保護敏感資料安全概述:隨著網路的快速發展,資料安全問題變得越來越重要。特別是在網路應用開發中,對於一些敏感資料的保護至關重要。 ThinkPHP6框架提供了一套強大的資料加密與解密機制,透過對敏感資料進行加密處理,可以有效提升資料的安全性。使用ThinkPHP6的加密函數ThinkPHP6框架內建了多種加密函數,可依需

詳解Java中volatile關鍵字的使用場景及其作用 詳解Java中volatile關鍵字的使用場景及其作用 Jan 30, 2024 am 10:01 AM

Java中volatile關鍵字的作用及應用場景詳解一、volatile關鍵字的作用在Java中,volatile關鍵字用來識別一個變數在多個執行緒之間可見,即保證可見性。具體來說,當一個變數被宣告為volatile時,任何對該變數的修改都會立即被其他執行緒所知曉。二、volatile關鍵字的應用程式場景狀態標誌volatile關鍵字適用於一些狀態標誌的場景,例如一

Java開發技巧揭秘:實現資料加密與解密功能 Java開發技巧揭秘:實現資料加密與解密功能 Nov 20, 2023 pm 05:00 PM

Java開發技巧揭秘:實現資料加密與解密功能在當前資訊化時代,資料安全成為一個非常重要的議題。為了保護敏感資料的安全性,許多應用程式都會使用加密演算法來加密資料。而Java作為一種非常流行的程式語言,也提供了豐富的加密技術和工具庫。本文將揭秘一些Java開發中實作資料加密和解密功能的技巧,幫助開發者更好地保護資料安全。一、資料加密演算法的選擇Java支援多

PHP加密與解密函數大全:md5、sha1、base64_encode等函數的安全應用方法 PHP加密與解密函數大全:md5、sha1、base64_encode等函數的安全應用方法 Nov 18, 2023 pm 04:18 PM

PHP加密和解密函數大全:md5、sha1、base64_encode等函數的安全應用方法,需要具體程式碼範例在網路應用的開發中,資料的加密和解密是非常重要的。 PHP作為一種流行的伺服器端腳本語言,提供了多種加密和解密函數,本文將介紹常用的函數及其安全應用方法,並提供特定的程式碼範例。 md5函數md5函數是最常見的一種加密函數,可以將任意長度的字串轉換為32位

探索java多執行緒的工作原理與特點 探索java多執行緒的工作原理與特點 Feb 21, 2024 pm 03:39 PM

探索Java多執行緒的工作原理和特點引言:在現代電腦系統中,多執行緒已成為一種常見的並發處理方式。 Java作為一門強大的程式語言,提供了豐富的多執行緒機制,讓程式設計師可以更好地利用電腦的多核心處理器、提高程式運作效率。本文將探索Java多執行緒的工作原理和特點,並透過具體的程式碼範例來說明。一、多線程的基本概念多線程是指在一個程式中同時執行多個線程,每個線程處理不同

CentOS中詳細介紹Vim文字的加密與解密方法 CentOS中詳細介紹Vim文字的加密與解密方法 Dec 31, 2023 pm 02:49 PM

CentOS用vim/vi給文件加密和解密一、利用vim/vi加密:優點:加密後,如果不知道密碼,就看不到明文,包括root用戶也看不了;缺點:很明顯讓別人知道加密了,容易讓別人把加密的檔案破壞掉,包括內容破壞和刪除;vi編輯器相信大家都很熟悉了吧,vi裡有一個命令是給文件加密的,舉個例子吧:1)首先在root主目錄/root/下建立一個實驗檔案text.txt:[root@www~]#vim/vitext.txt2)轉到編輯模式,輸入內容後按ESC,然後輸入:X(注意是大寫的X),回車;3)

See all articles