Java多線程的實(shí)現(xiàn)方式詳解
Java多線程的實(shí)現(xiàn)
在java語言中:
線程A和線程B,堆內(nèi)存和方法區(qū)內(nèi)存共享。
但是棧內(nèi)存獨(dú)立,一個(gè)線程一個(gè)棧。
1. 最簡單的線程實(shí)現(xiàn)
new Thread() {
@Override
public void run() {
System.out.println("線程開始了");
}
}.start();2. Runnable 線程實(shí)現(xiàn)
Runnable runnable = new Runnable() {
@Override
public void run() {
System.out.println("runnable 線程開始了執(zhí)行");
}
};
Thread thread = new Thread(runnable);
thread.start();在第二種方式中,Thread 傳入的參數(shù)不為空,會直接調(diào)用 Thread 傳入?yún)?shù)的 run 方法,本質(zhì)上以上兩種方法沒有區(qū)別
在第二種方式的好處是,runnable 可以重用
3. ThreadFactory 線程實(shí)現(xiàn)
ThreadFactory threadFactory = new ThreadFactory() {
AtomicInteger count = new AtomicInteger(0);
@Override
public Thread newThread(Runnable r) {
return new Thread(r, "Thread-" + count.incrementAndGet());
}
};
Runnable runnable = new Runnable() {
@Override
public void run() {
System.out.println(Thread.currentThread().getName() + "線程開始執(zhí)行");
}
};
Thread thread = threadFactory.newThread(runnable);
thread.start();
Thread thread1 = threadFactory.newThread(runnable);
thread1.start();但在主流方式中,以上都不推薦使用,主要的原因是,線程的管理不方便,造成線程混亂等現(xiàn)象
到此這篇關(guān)于Java多線程的實(shí)現(xiàn)方式詳解的文章就介紹到這了,更多相關(guān)Java多線程的實(shí)現(xiàn)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Springboot通過配置WebMvcConfig處理Cors非同源訪問跨域問題
這篇文章主要介紹了Springboot通過配置WebMvcConfig處理Cors非同源訪問跨域問題,關(guān)于Cors跨域的問題,前端有代理和jsonp的常用方式解決這種非同源的訪問拒絕策略2023-04-04
SpringBoot配置Spring?Security的實(shí)現(xiàn)示例
本文主要介紹了SpringBoot配置Spring?Security的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2024-10-10
使用RabbitMQ實(shí)現(xiàn)延時(shí)消息自動取消的案例詳解
這篇文章主要介紹了使用RabbitMQ實(shí)現(xiàn)延時(shí)消息自動取消的簡單案例,案例代碼包括導(dǎo)包的過程和相關(guān)配置文件,本文結(jié)合代碼給大家講解的非常詳細(xì),需要的朋友可以參考下2024-03-03
淺談java調(diào)用Restful API接口的方式
這篇文章主要介紹了淺談java調(diào)用Restful API接口的方式,具有一定借鑒價(jià)值,需要的朋友可以參考下。2017-12-12
一文詳解SpringBoot使用Kafka如何保證消息不丟失
這篇文章主要為大家詳細(xì)介紹了SpringBoot使用Kafka如何保證消息不丟失的相關(guān)知識,文中的示例代碼講解詳細(xì),有需要的小伙伴可以參考一下2025-01-01
Java利用條件運(yùn)算符的嵌套來完成學(xué)習(xí)成績的劃分
這篇文章主要介紹了Java利用條件運(yùn)算符的嵌套來完成學(xué)習(xí)成績的劃分,需要的朋友可以參考下2017-02-02
Java實(shí)現(xiàn)字符串和輸入流的相互轉(zhuǎn)換
這篇文章主要介紹了Java實(shí)現(xiàn)字符串和輸入流的相互轉(zhuǎn)換方式,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-08-08
Java對世界不同時(shí)區(qū)timezone之間時(shí)間轉(zhuǎn)換的處理方法
這篇文章主要介紹了Java對世界不同時(shí)區(qū)timezone之間時(shí)間轉(zhuǎn)換的處理方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-07-07

