多執行緒基礎 Java併發1

2021-09-05 07:51:03 字數 1643 閱讀 9196

目錄

執行緒和程序概念

同步和非同步概念

多執行緒建立方式

繼承thread類(不推薦)

實現runnable介面,重寫run方法

使用匿名內部類

多執行緒的執行狀態

守護執行緒、非守護執行緒

join方法()

優先順序執行緒安全

同步方式

同步**塊:

同步方法 注意

class threaddemo1 extends tread

}}/**

*執行*/treaddemo1 t = new treaddemo1();

t.start();

class threaddemo2 implements runnable

}}/**

*執行*/thread t = new thread(new threaddemo2());

t.start();

thread t = new thread(new runnable()

}})/*

*執行*/t.start();

thread t = new thread(newthreaddemo());//此時t為使用者執行緒

t.setdaemon(true);//將執行緒t變為守護執行緒

t.start;//執行

/**

*示例:子執行緒執行完畢後,主線程才能執行

*/thread t1 = new thread(new runnable() catch (exception e)

system.out.println(thread.currentthread().getname() + "i:" + i);}}

});t1.start();

// 當在主線程當中執行到t1.join()方法時,就認為主線程應該把執行權讓給t1

t1.join();

for (int i = 0; i < 10; i++) catch (exception e)

system.out.println("main" + "i:" + i);

}

thread t = new thread(new threaddemo());//建立執行緒t

t.setpriority(10);//將執行緒優先順序設為10

t.start();//執行執行緒

內建鎖(synchronized):保證執行緒原子性,當執行緒進入方法時,自動獲取鎖,一旦鎖被其他執行緒獲取到後,其他的執行緒就會等待,只有乙個執行緒進行使用。程式執行完畢後就會把鎖釋放。但是它會降低程式的執行效率(鎖資源的競爭)。

顯示鎖(lock鎖)

/**

*同步**塊示例

*object為任意全域性物件

*/synchronized(object)

/**

*同步方法示例

*object為任意全域性物件

*/public synchronized run

Java併發 多執行緒

執行緒狀態 每個執行緒可以看做不同的任務,cpu需要分配每個執行緒不同的使用時間,cpu需要不同的執行緒之間來回切換,造成執行緒可能存在的不同狀態。新建執行緒 public class thread1 extends thread public class runnable1 implements ...

多執行緒 Java多執行緒與併發

實現的方式主要有三種 執行緒的狀態 基本差別 最主要的本質區別 兩個概念 鎖池 假設執行緒a已經擁有了某個物件 不是類 的鎖,而其他執行緒b c想要呼叫這個物件的某個synchronized方法 或者塊 由於b c執行緒在進入物件的synchronized方法 或者塊 之前必須先獲得該物件鎖的擁有權...

併發變成多執行緒基礎(草稿1)

執行緒與程序的概念 執行緒分類,分為使用者執行緒和守護執行緒。還可分為主線程,子執行緒,gc執行緒 乙個程序中至少有乙個執行緒,是主線程 多執行緒的建立方式 1 extends thread 重寫其run方法 2 實現runnable介面,重寫其run方法。thread t new thread 實...