Java三章學習內容(執行緒)

2021-08-19 13:54:24 字數 1474 閱讀 6758

一.執行緒

多個執行緒處理任務

start();   

執行多個並交替執行

run(); 

執行主線程一條路徑

sleep(); 

休眠狀態,以毫秒為單位

《變數名》.setpriority(thread.max_priority);

設定執行緒的優先順序max=10,min=1,還有個為5

thread.yield();

把資料禮讓出去給其他執行緒,不一定會禮讓成功  

join();     

讓該執行緒執行

volatile 

//可見性,用於執行緒修飾符,拿到改變後得值 

1.繼承thread類

編寫簡單,可直接操作執行緒

適用於單繼承

public class mythread extends thread

thread.sleep(500);      

//休眠狀態,500毫秒=0.5秒

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

//get出線程名稱}}

}//測試類

public class text

}2.實現runnable介面

避免單繼承侷限性

便於共享資源

//建立類

public class runthread

implements runnable}}

//實現類

public class textrun

}3.synchronized(同步方法)

不使用synchronized控制線程訪問可能會造成同時執行的情況,

可以使用

synchronized修飾返回型別或者在內容使用

第一種:修改修飾符為public 

synchronized void sale

第二種:在條件下面使用

synchronized (this){},{}要括住需要同步的部分

public

synchronized void sale()

try catch (interruptedexception e)

system.out.println(thread.currentthread().getname()+"搶到第"+num+"票,剩餘"+count+"張票");} }

public  void sale1()

if (count<-0)

try catch (interruptedexception e)

system.out.println(thread.currentthread().getname()+"搶到第"+num+"票,剩餘"+count+"張票");} }

}

Java三章學習內容(序列化及反序列化)

一.序列化及反序列化 輸入或者輸出相應的object型別,把object型別型別輸出到文字或則把object型別輸入到控制台 物件類必須實現serializable介面 public class student implements serializable 參考 oo.writeobject st...

GPU之cuda學習第三章內容總結

gup高效能程式設計cuda實戰 第三章 1.將cpu以及系統的記憶體稱為主機,而將gpu以及其記憶體稱為裝置。2.cuda c為標準c增加的 global 修飾符,這個修飾符告訴編譯器,函式應該編譯為裝置而不是主機上執行。3.函式kernel 將被交給編譯裝置 編譯器,而main 函式將被交給主機...

第三章執行緒間通訊

我看書是邊看邊記錄重點,所以可能內容會有些不通順,但是肯定是按照書中記錄的順序來進行記錄的。首先介紹等待 通知機制。第一種方式是使用sleep while true 這種方式來進行,但是因為while迴圈一直跑會非常浪費cpu資源,所以雖然可以實現等待 通知,但是這種方式不太好。第二種方式就是wai...