1. 程式人生 > >JAVA多執行緒學習筆記 停止執行緒

JAVA多執行緒學習筆記 停止執行緒

在這裡要注意interrupt()方法,線上程正常執行的時候,呼叫 interrupt() 並不能結束執行緒。

正確的結束執行緒的姿勢如下:

<span style="white-space:pre">	</span>public volatile boolean stop = false;
	//volatile : every time use this variable ,system will check this value
	private int i =0;
	
	public void run(){
		while(!stop){
			i++;
			System.out.println("Scanning!" + i);
		}
	}

參考連結:http://blog.csdn.net/wxwzy738/article/details/8516253

這裡有一個volatile關鍵字,此關鍵字的作用是:在每次使用這個變數時,都要檢查此變數是否被更改,呼叫最後修改的值。

參考連結:http://www.cnblogs.com/aigongsi/archive/2012/04/01/2429166.html

相關推薦

JAVA執行學習筆記 停止執行

在這裡要注意interrupt()方法,線上程正常執行的時候,呼叫 interrupt() 並不能結束執行緒。 正確的結束執行緒的姿勢如下: <span style="white-space:p

執行學習筆記--04執行間的通訊(通訊管道實現執行間的通訊)

 1.執行緒間的通訊        通過管道實現執行緒間的通訊:位元組流        通訊關單實現執行緒間的通訊:字元流        等待通知之交叉備份

執行學習筆記--03執行間的通訊(wait/notify)

1.執行緒間的通訊      使用wait/notify來實現執行緒間的通訊      生產者/消費者模式的實現      方法join的使用     ThreadLocal

執行學習筆記二--執行

使用執行緒池的兩種方式:Runable介面和Callable介面 1.Runable介面實現步驟: 建立執行緒池物件 建立Runnable介面實現類 提交Runable介面實現類 關閉執行緒池(實際使用時一般不關閉,因為使用執行緒池就是為了減少執行緒的建立和銷燬)

Java執行學習筆記(四)-執行沉睡,喚醒,連線

執行緒沉睡(sleep)並不會讓執行緒釋放它所持有的同步鎖,而且在這期間也不會阻礙其他執行緒的執行。喚醒(interrupt)可以將沉睡或阻塞的執行緒喚醒。 執行緒沉睡:執行緒沉睡可以使當前執行緒沉睡

《深入理解Java虛擬機器》學習筆記執行安全與鎖優化

二、執行緒安全 定義: “當多個執行緒訪問一個物件時,如果不用考慮這些執行緒在執行時環境下的排程和交替執行,也不需要進行額外的同步,或者在呼叫方進行任何其他的協調操作,呼叫這個物件的行為都可以獲得

Java 執行 學習筆記(二)停止執行的幾種方法

1.異常法: package test; import exthread.MyThread; import exthread.MyThread; public class Run { pu

Java執行學習筆記(六) synchronized(this)同步語句塊

synchronized (this)同步語句塊 1. 一半非同步,一半同步 1.1 Task 1.2 ThreadA 1.3 ThreadB 1.4 Test 1.5 執行結果 2. synchronize

Java執行學習筆記(五) 使用Condition實現等待/通知

使用Condition實現等待/通知 1. 使用Condition 1.1 MyService 1.2 ThreadA 1.3 Test 1.4 執行結果 1.5 方法對比 2. 使用多個Condition實

Java執行學習筆記(四) 使用ReentrantLock實現同步

1. 測試1 1.1 MyService import java.util.concurrent.locks.Lock; import java.util.concurrent.locks.ReentrantLock; public class MyService { pr

Java執行學習筆記(三) wait/notify

1.wait() wait()的作用是使當前執行程式碼的執行緒進行等待, 知道接到通知(notify)或者中斷為止 wait()是Object類的方法 當執行緒處於wait,呼叫interrupt()會出現InterruptedException 在呼叫wait

Java執行學習筆記(二) synchronized同步方法-防止髒讀

1. 髒讀 在給一個物件賦值的時候進行了同步, 但是在取值的時候可能出現意外,此值已經被其他執行緒修改了,這種情況就是髒讀 1.1 PublicVar類 public class PublicVar { public String userName = "wang don

Java執行學習筆記(一) synchronized同步方法

synchronized同步方法 1.提出問題-例項變數非執行緒安全 1.1 何為非執行緒安全? 1.2 舉例 1.2.1 有私有變數的類HasPrivateNum (供多執行緒們去呼叫) 1.2.2 執行緒A

Java學習|執行學習筆記

什麼是執行緒?     可以理解為程序中獨立執行的字任務。   使用多執行緒:     1.繼承Thread類:從原始碼可以看到,Thread累實現了Runnable介面。     &n

Java執行學習筆記22之增補拾遺

詳細程式碼見:github程式碼地址   第七章 本章內容: 1. 執行緒組的使用 2. 如何切換執行緒的狀態 3. SimpleDateFormat類與多執行緒的解決方案 4. 如何處理執行緒的異常 執行緒的狀態 執行緒物件在不同的執行時期有不同的狀態

Java執行學習筆記21之單例模式與執行

詳細程式碼見:github程式碼地址   第六章 單例模式與多執行緒 前言: 我之前已經開設了23個設計模式這個專欄,介紹了很多的Java設計模式,其中一些模式對於絕 大多數程式語言設計思想都是類似的,需要了解單例模式的可以去看看。 我們在實際開發中經常用到單例模式,但

Java執行學習筆記20之定時器Timer

詳細程式碼見:github程式碼地址   本節內容:     定時器Timer的使用及分析 1) 如何實現指定時間執行任務 2) 如何實現按指定週期執行任務   第五章 定時器Timer 定時/計劃

Java執行學習筆記19之Lock的使用

詳細程式碼見:github程式碼地址   本節內容: ReentrantLock 方法講解及ReentrantReadWriteLock讀寫鎖詳解 5)awaitUninterruptibly() 6) awaitUntil(Date deadline

Java執行學習筆記18之Lock的使用

詳細程式碼見:github程式碼地址   本節內容:     公平鎖和非公平鎖以及ReentrantLock常用方法的使用 1) 公平鎖和非公平鎖 2) getHoldCount()、getQueueLength()、getWait

Java執行學習筆記17之Lock的使用

詳細程式碼見:github程式碼地址   本節內容: 1) Lock/ReentrantLock的newCondition()方法及Condition類/await、signal方法文件翻譯 2) Condition實現等待/通知使用(錯誤示例及正