更新時間:2020-07-29 15:27:02 來源:動力節點 瀏覽2685次
Java允許多線程并發控制,當多個線程同時操作一個可共享的資源變量時(如數據的增刪改查),將會導致數據不準確,相互之間產生沖突,因此加入同步鎖以避免在該線程沒有完成操作之前,被其他線程的調用,從而保證了該變量的唯一性和準確性。下面和小編一起來看看多線程常見的7種方法吧!
1,繼承Thread
主要掌握:線程的初始化,啟動,中斷的正確處理方式(interrupted)
public?class?Demo1?{
public?static?void?main(String[]?args)?{
MyThread?thread?=?new?MyThread();
thread.start();
}
}
class?MyThread?extends?Thread{
@Override
public?void?run()?{
System.out.println(Thread.currentThread().getName()+":running...");
}
}
2,實現Runnable
源碼解析,為什么會調用Runnable的run方法
public?class?Demo2?{
public?static?void?main(String[]?args)?{
MyRunnable?task?=?new?MyRunnable();
new?Thread(task).start();
}
}
class?MyRunnable?implements?Runnable{
@Override
public?void?run()?{
System.out.println(Thread.currentThread().getName()+":running");
}
}
3,匿名內部類的方式(線程只創建一次的情況)
有兩種方式
public?class?Demo3?{
public?static?void?main(String[]?args)?{
new?Thread(){
public?void?run()?{
System.out.println("通過匿名內部類的方式來創建線程");
};
}.start();
new?Thread(new?Runnable()?{
@Override
public?void?run()?{
System.out.println("通過實現一個匿名的Runnable子類來實現");
}
}).start();
}
}
4,帶返回值的線程,實現Callable接口
實現call方法
FutureTask對任務進行封裝
5,使用定時器的方式
Timer,TimerTask,執行定時任務
6,使用線程池的方式
通過Executors創建不同的線程池進行任務執行
7,Lambda表達式(函數式編程)JDK1.8提供的新特
lambda表達式代碼簡潔,實現方便,對并發支持好,性能高
我們通過打印一個集合的數據來觀察運行結果,發現出來的順序是不一致的,說明是多線程方式
以上就是動力節點java培訓機構的小編針對“Java多線程技術,多線程常見的7種方法”的內容進行的回答,希望對大家有所幫助,如有疑問,請在線咨詢,有專業老師隨時為你服務。
0基礎 0學費 15天面授
有基礎 直達就業
業余時間 高薪轉行
工作1~3年,加薪神器
工作3~5年,晉升架構
提交申請后,顧問老師會電話與您溝通安排學習