java多線程

進程:
任務的執行過程(動態性)qq或eclipse
持有資源(共享內存,共享文件)和線程
線程:
eclipse:
源代碼文本編輯
源代碼編譯
語法教研
qq:
聊天java

線程是系統彙總最小的執行單元
贊成進程中有多個線程
線程共享進程的資源

線程交互:
交互方式:互斥,同步
java中對多線程的支持
Thread經常使用方法:
線程的建立:
Thread();
Thread(String name);
Thread(Runnable target);
Thread(Runnable target,String name);
線程的方法:
void start();啓動線程
static void sleep(long millis);
static void sleep(long millis,int nanos);線程休眠
void join();
void join(long millis);
void join(long millis);
void join(long millis,int nanos);使其餘線程等待當前線程終止
static void yield();當前運行線程釋放處理器資源
獲取線程引用:
static Thread currentThread();返回當前運行的線程引用編程

正確中止java中的線程:
//interrupt()方法 會使用isinterrupt()得到線程是否被終端狀態,可是在使用sleep()方法時interrupt狀態會被清除,致使線程不能被有效的中止,因此此方法不是正確的中止線程的方法
//不能使用stop方法安全

線程的交互:互斥與同步
互斥的實現:synchronize(intrinsic lock)
同步的實現:wait()/notify()/notifyAll()markdown

總結:
1.如何建立線程及線程的基本操做
2.可見性及volatile關鍵字
3.爭用條件
4.現成的互斥synchronized
5.線程的同步wait/ notifyAll多線程

————java進階——————–
擴展建議:
java Memory Mode
JMM描述了java線程如何經過內存進行交互
happens-before原則
java.util.concurrent.locks
線程安全性:
原子行與可見性
java.util.concurrent.atomic
synchronized & volatile
DeadLocks
多線程經常使用的交互模型:
Producer-Consumer模型
Read-Write Lock模型
Future模型
Worker Thread模型併發

java5中併發編程工具:
java.util.concurrent
線程池ExecutorService
Callable & Future
BlockingQueueapp

推薦書籍:
core java (核心java)
java concurrency in practiceeclipse

相關文章
相關標籤/搜索