多執行緒學習筆記(一)
一. 新建執行緒(兩種方法)
第一種:繼承Thread
1.定義一個類繼承Thread
2.該類重寫run方法。其中的getName是獲取執行緒名方法;有參構造可以在新建時指定執行緒名
3.建立子類物件就是建立新執行緒
4.子類物件呼叫start方法 ,開啟執行緒,執行重寫的run方法。在main方法中獲取執行緒名用Thread.CurrentThread().getName()
第二種:實現Runnable介面
1.定義類實現Runnable介面
2.覆蓋介面中的run方法
3.建立Runnable介面實現類物件
4.建立Thread物件,將Runnable的子類物件作為引數傳遞給Thread類的建構函式
5.呼叫Thread類的start方法,開啟執行緒,呼叫run方法
注意:
1.執行緒物件呼叫run方法不開啟執行緒。僅是物件呼叫方法。執行緒物件呼叫start開啟執行緒,並讓jvm呼叫run方法在開啟的執行緒中執行。
2.主執行緒名字main,自定義的執行緒預設以Thread-0、Thread-1...依次命名
二. 執行緒的匿名內部類的使用(兩種方式)
相關推薦
多執行緒學習筆記(一)
一. 新建執行緒(兩種方法) 第一種:繼承Thread 1.定義一個類繼承Thread 2.該類重寫run方法。其中的getName是獲取執行緒名方法;有參構造可以在新建時指定執行緒名 3.建立子類物件就是建立新執行緒 4.子類物件呼叫start方法 ,開啟執行
Java多執行緒學習筆記(一)之中斷中的Interrupt,interrupted(),isInterrupted()
1、關於中斷 在Java中中斷最初是通過stop()來終止執行緒的,後來發現這樣簡單粗暴的停止執行緒會產生很多問題(例如物件monitor的釋放),所以改為deprecated,推薦使用interrupt()來中斷執行緒。而對於執行緒來說,會持有一個inter
多執行緒學習總結(一)
一、程序和執行緒的定義 程序:程序是資源(CPU、記憶體等)分配的基本單位,它是程式執行時的一個例項。程式執行時系統就會建立一個程序,併為它分配資源,然後把該程序放入程序就緒佇列,程序排程器選中它的時候就會為它分配CPU時間,程式開始真正執行。 執行緒:執行緒是程式執行時的最小單位,它是程序
Java多執行緒學習筆記(四)
1、原子性:操作不能被打斷,要麼成功要麼失敗。i++ 不是原子操作。 2、可見性:一個執行緒修改了資料,其他執行緒立刻可見。 3、順序性: 4、volatile 保證程式的可見性,和順序性。不能保證對複合操作(如i++)的原子性。 javap -v xxx.class
java多執行緒學習筆記(高階)
1.程序和程序之間的記憶體是獨立的。 2.多程序的程式是為了提高CPU的使用率。 3.多執行緒不是為了提高執行速度,而是為了提高應用程式的使用率。 4.執行緒和執行緒共享“堆記憶體和方法區記憶體”,棧記憶體是獨立的也就是說一個執行緒一個棧。 5.關於java程式的執行原理:
Java 多執行緒 學習筆記(二)停止執行緒的幾種方法
1.異常法: package test; import exthread.MyThread; import exthread.MyThread; public class Run { pu
多執行緒學習筆記(三)之單例模式中的執行緒問題
在某些情況下,每個類只需要一個例項,單例模式就是保證在整個應用程式的生命週期中,任何一個時刻,單例類的例項都只存在一個(當然也可以不存在),核心點: 將採用單例模式的類的構造方法私有化(private修飾) 在其內部產生該類的例項化物件,並將其封裝成priv
Java 多執行緒學習筆記(五)synchronized 鎖重入
關鍵字synchronized 擁有鎖重入的功能,也就是使用synchronized時,當一個執行緒得到一個物件鎖後,再次請求此物件鎖時是可以再次得到該物件的鎖的。這也就證明在一個synchroniz
多執行緒學習筆記(二)之執行緒安全問題
執行緒安全問題的現象 首先讓我們考慮一個問題: class Demo implements Runnable{ private int num = 100; //實現Runnable介面,覆蓋run方法 public void r
多執行緒學習筆記(1)
1.執行緒的建立 兩種方式:繼承Thread類,實現Runnable介面 繼承Thread類:重寫run方法 實現Runnable介面:實現run方法,同時需在宣告時飲用Thread類構造方法來成為真正的執行緒物件。 實現Runnable介面的好處是:若所定義的類已經是其他
Java 多執行緒學習筆記(七)資料型別String的常量池特性
將synchronized(String)與String 混合使用時需要注意String的常量池特性帶來的影響 package extthread; import service.Service;
Java 多執行緒學習筆記(十一) 單例設計模式(延遲載入/懶漢模式)DCL解決執行緒安全問題
package extthread; import test.MyObject; public class MyThread extends Thread { @Override publi
多執行緒詳解(一)
[多執行緒詳解(一)](http://www.neilx.com) 一、概念準備 1、程序 (1)直譯:正在進行中的程式 (2)解釋:執行一個程式時,會在記憶體中為程式開闢空間,這個空間就是一個程序。 (3)注意:一個程序中不可能沒有執行緒,只有有了執行緒才能執行; 程序只
多執行緒學習總結(二)
一、多執行緒帶來的問題 (一)活躍性問題 死鎖:兩個執行緒相互等待對方釋放資源 飢餓: 多執行緒併發時優先順序低的執行緒永遠得不到執行;執行緒被永久阻塞在一個等待進入同步塊的狀態;等待的執行緒永遠不被喚醒 活鎖:活鎖指的是任務或者執行者沒有被阻塞,由於某些條件沒有滿足,導致
java執行緒學習總結(一)
(宣告:並非原創,只是一個簡單總結) 一、執行緒和程序的概念: 程序:程序是處於執行過程中的程式,並且具有一定的對功能,是系統進行資源分配和排程的一個獨立單位。
Java多執行緒-基礎篇(一)
多執行緒---基礎篇,本文主要針對多執行緒的基礎進行復習,內容包括執行緒的理解,建立方式,Thread類函式理解; 1、執行緒的理解:OS系統角度:每個執行的程式都會被作業系統建立對應的程序(包括分配的資源、PCB等),程序是作業系統分配資源的基本單位(理解:程式執行需要空間,作業系統建立對應程序時
Java面向物件與多執行緒綜合實驗(一)之封裝、繼承與多型
編寫一個程式,實現檔案管理系統中的使用者管理模組。要求模組中實現使用者的模擬登入過程。通過使用者輸入,獲取使用者名稱和口令;與事先記錄在程式中的使用者資訊進行對比,通過口令驗證後才能使用系統。使用者分為系統管理人員、檔案錄入人員,檔案瀏覽人員三類,相關類圖如下所示。 (1)要求在使用者類中
Java多執行緒與併發(一)
多執行緒與併發的基礎問題 併發就是指程式同時處理多個任務的能力(一個程式被多個使用者訪問都能看到自己預期的結果) 併發的根源在於對多工情況下訪問資源的有效控制! 併發背後的問題 public class DownloadSimple {
Java多執行緒乾貨系列—(一)Java多執行緒基礎
多執行緒併發程式設計是Java程式設計中重要的一塊內容,也是面試重點覆蓋區域,所以學好多執行緒併發程式設計對我們來說極其重要,下面跟我一起開啟本次的學習之旅吧。 正文 執行緒與程序 1 執行緒:程序中負責程式執行的執行單元 執行緒本身依靠程式進行執行 執行緒是程式中的順序控制流,只能使用分配給程式的資源和環
多執行緒基礎知識(一) 執行緒的概念及建立任務與執行緒
執行緒的概念及建立任務與執行緒 引言 多執行緒使得程式中的多個任務可以同時執行。 java的重要功能之一就是內部支援多執行緒————在一個程式中運行同時執行多個任務。在許多程式設計語言中,多執行緒都是通過呼叫依賴於系統的過程或函式來實現的。在本文中,將介紹執行緒的該