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實現等待/通知使用(錯誤示例及正