日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

设置线程当天十二点执行_这份JAVA多线程笔记真的是细节满满,几乎全是你工作能用到的干货...

發(fā)布時間:2024/9/27 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 设置线程当天十二点执行_这份JAVA多线程笔记真的是细节满满,几乎全是你工作能用到的干货... 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

前言

1:發(fā)揮多核CPU的優(yōu)勢(充分利用cpu資源)

如果是單線程的程序,那么在雙核CPU上就浪費了50%,在4核CPU上就浪費了75%。單核CPU上所謂的”多線程”那是假的多線程,同一時間處理器只會處理一段邏輯,只不過線程之間切換得比較快,看著像多個線程”同時”運行罷了。多核CPU上的多線程才是真正的多線程,它能讓你的多段邏輯同時工作,多線程,可以真正發(fā)揮出多核CPU的優(yōu)勢來,達到充分利用CPU的目的。多線程完成cpu內核的快速切換,提高CPU的利用率

2:防止阻塞

假如單線程執(zhí)行的時候在返回數(shù)據(jù)的時候遲遲沒有返回,然后此時線程就會出現(xiàn)阻塞 要是多線程的話,那么要是有一個阻塞了也不會影響其他線程的執(zhí)行單核CPU上運行多線程導致線程上下文的切換,而降低程序整體的效率

3:便于建模

就是一個大任務,拆分成多個小任務,此時就十分簡單了

4:提高程序執(zhí)行效率

? 也就是上文中的利用多個線程用多核cpu的情況,可以在多核cpu的都在進行工作沒有休息,就防止cup在休息然后不工作的情況

進程和線程:

進程:一個程序運行的時候叫做進程
線程:一個進程啟動會有多個線程 最少有兩個線程(gc 和 主)

//main 方法執(zhí)行: 需要一個線程,該線程由jvm創(chuàng)建(主線程) //后臺線程,垃圾回收線程(g2)

線程之間可以數(shù)據(jù)共享
并發(fā):在同一時間一起訪問線程(有可能出現(xiàn)異常)
并行:在同一時間段上一起訪問線程 必須多核 然后同時運行

線程存在的意義:其實是為了提高進程的效率 就是可以在同一時間開啟多個線程

線程的創(chuàng)建和啟動

兩種方式創(chuàng)建線程

1:繼承于Thread

-自定義繼承Thread

-復寫run方法

-創(chuàng)建自定義類對象

-自定義對象調用start方法

//繼承Thread類來自定義一個線程類 class MyThread extends Thread{//分配任務 來自于父類的方法public void run(){//方法寫在這里 線程執(zhí)行體System.out.println("聽音樂");}public static void main(String[] args){MyThread myThread = new MyThread();myThread.start(); //線程啟動 將當前線程交給cup來調度//當搶到cpu資源時,執(zhí)行其中run方法System.out.println("玩游戲");} }//此時代碼主線程先開啟 開啟執(zhí)行調用線程 此時線程數(shù)(3) //我們現(xiàn)在有 主線程 和cpu來決定誰搶到cpu資源 然后自定義和 //主線程就開始競爭資源了 誰搶到就是誰的了 注意:只有當線程有競爭關系的時候才能體現(xiàn)出來 且不會因為主線程的結束而結束當前線程 只有在所有線程結束之后才會結束當前線程

2:實現(xiàn)Runable

-自定義實現(xiàn)Runnable接口

-覆寫run方法

-創(chuàng)建自定義類對象

-把自定義類的對象作為Thread對象的參數(shù)創(chuàng)建

(本質就是用Thread的一個構造器來創(chuàng)建一個啟動線程的方法)

-使用Thread類的對象調用start方法

創(chuàng)建Thread的時候傳入一個String的時候 其實就是為線程賦予名字 //編寫線程中需要執(zhí)行的方法 public MyRunnable implement Runnable{public void run(){//線程體 寫一個線程中要執(zhí)行的代碼for(int i = 0;i<10;i++){System.out.println("玩游戲);}} }public MyRunnableDemo{public static void main(String[] arge){//創(chuàng)建對象MyRunnable m = new Myrunnable();//傳入m代碼是 Thread執(zhí)行的任務為m內run方法Thread t = new Thread(m);t.start();for(int i = 0;i<10;i++){System.out.println("聽音樂);}} }

線程聲明周期的狀態(tài)

線程的開始 是在new的時候就開始了

1:可運行 排隊 和執(zhí)行狀態(tài)

2:等待 等待另一個線程來喚醒他

3:計時等待 萬一沒人喚醒自己定時醒

4:阻塞狀態(tài) 遇到特俗情況(如IO) 讓出自己的cpu資源

5:終止 當線程執(zhí)行完畢就結束了 也可以強停

常用方法

1:join 讓當前線程執(zhí)行完畢 之后再執(zhí)行其他的線程

? 使其他資源讓出自己的資源

(同步 a完事之后 再執(zhí)行b)

(異步 a和b交替執(zhí)行 //平時的執(zhí)行方法)

2:sleep(long milllis) 計時等待 一般模擬網絡延遲

3:線程優(yōu)先級 可以提供他和其他線程搶cpu執(zhí)行的機會

但是不是絕對高 只是和cpu調用有關 1-10 默認是5

Tread對象設置優(yōu)先級setPriority(int x)和 獲取getpriority()獲取優(yōu)先級

4:后臺線程 又名守護線程 守護其他的普通線程

所有的前臺線程此時后臺延遲自程死亡

setDaemon() 將當前線程設置為后臺線程(不能再start后)

用Thread和Runnable創(chuàng)建線程區(qū)別

一:使用Thread方法創(chuàng)建線程

? 常用語法區(qū)別

1:super.getName(); //獲取當前線程名字

2:設置獲取線程名字區(qū)別

? (1):線程名.setName("");

? (2):我們可以再構造器中設置名字

? 子類中調用父類構造器 再子類中提供一個構造器 然后調用父類構造器 此時就可以再測試類創(chuàng)建對象的時候直接初始化名字沒有必要再設置了 這種方式更加簡單;每個對象都會有一個成員變量值都是相等的 每次改變的都是自己的所以不能共享 此時我們把成員變量設置為靜態(tài)的成員 此時無論幾個對象都是訪問一個字段對象

二:使用Runnable方法,可以實現(xiàn)資源共享在啟動的時候需要多執(zhí)行一部

常用語法區(qū)別

1:Thread.currentThread().getName(); //獲取當前線程名字

2:設置獲取線程的名字區(qū)別

? (1)通過Thread(Runnable run,String name); 可以傳入名字

? (2)new Thread(Runnabel run).setName();

實現(xiàn)資源 要不就是資源是大家的一起共有的 在不就是大家只有一個

synchronized同步

當多個線程并發(fā)訪問同一個資源的時候,可能出現(xiàn)線程不安全的問題

就是一個線程在執(zhí)行的時候可能被其他線程搶走此時就出現(xiàn)錯誤了然后就

此時引入Synchronized哪一個線程拿到此鎖的時候就會在里面執(zhí)行并且把其他線程隔絕在外面

同步方法 //不需要我們自己指定鎖對象

//鎖對象 對于非static方法,同步鎖就是this 對于static方法,同步鎖就是當前方法所在類的字解碼對象synchronized public void 方法名(){需要同步的方法體 } 注意:當我們使用繼承的方法的時候 盡量使用靜態(tài)的鎖方法 如果使用非靜態(tài)的就會出現(xiàn)錯誤 因為this只是指向當前對象 然后當有多個對象的時候就會出現(xiàn)對象指向不明的問題

同步代碼塊 //需要我們自己指定鎖對象

//鎖對象 保證使用同一個對象作為鎖對象即可 實現(xiàn)方式:鎖對象直接用this就好 因為只有一個對象 synchronized(同步鎖對象插入位置一般為this){? 需要同步的代碼塊} 繼承方式:鎖對象就不能用this了 因為不是只有一個對象 此時如何保證同一個對象 1:自定義線程對象.class 同一份字解碼對象 2:可以在自定義線程 讓一個對象代表三個/更多對象Objetc obj = new Object();

注意:我們保證多個線程共用一個對象才可以 不然還是鎖不住,并且要盡量減少同步代碼塊的作用域.

原子性操作

:在執(zhí)行這段代碼的時候不要讓其他人進來 關門操作一個或者幾個操作在一個線程執(zhí)行完畢之后,另一個線程才能開始執(zhí)行該操作

最后

感謝你看到這里,看完有什么的不懂的可以在評論區(qū)問我,覺得文章對你有幫助的話記得給我點個贊,每天都會分享java相關技術文章或行業(yè)資訊,歡迎大家關注和轉發(fā)文章!

總結

以上是生活随笔為你收集整理的设置线程当天十二点执行_这份JAVA多线程笔记真的是细节满满,几乎全是你工作能用到的干货...的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 九九黄色片 | 亚洲国产爱 | 韩国伦理在线看 | 91精品推荐 | 中文字幕一区二区三区乱码人妻 | 久久久久无码国产精品不卡 | 国产精品丝袜黑色高跟鞋 | 伊人网色 | 女女同性高清片免费看 | 亚洲在线视频观看 | 日韩理论在线 | 久久视频中文字幕 | 亚洲永久免费av | 国产麻豆成人传媒免费观看 | 欧美成人免费一级 | 黄网页在线观看 | 夜夜夜夜骑 | 色图综合网 | 韩国不卡av | 天天天天色 | av瑟瑟| 日本福利视频一区 | 久久中文字幕国产 | 91免费片| 黄色aa视频| 人人爽爽人人 | 日本免费一二区 | 性囗交免费视频观看 | 中文视频一区二区 | 浪浪视频在线观看 | 日本不卡一区在线 | 亚洲日本成人在线观看 | 牛牛电影国产一区二区 | 亚洲午夜无码久久久久 | 性饥渴的农村熟妇 | 欧美激情成人在线 | 久久精彩视频 | 91精品国产综合久久香蕉922 | 一道本不卡视频 | 精品国产乱码一区二区 | 国产精品久久视频 | 97免费公开视频 | 扒开伸进免费视频 | 日日干日日操 | 岛国伊人 | 欧美一区二区三区 | 日日夜夜噜 | 亚洲三级在线观看 | 精产国品一区二区三区 | 欧美日韩一区二区三区免费 | 日韩有码中文字幕在线 | 一级黄片毛片 | 黑人巨大国产9丨视频 | 精品影片一区二区入口 | 香蕉视频黄在线观看 | 丁香九月婷婷 | 亚洲精选在线观看 | 亚洲专区免费 | 性欧美一区二区三区 | 天天做夜夜爱 | 婷婷五月精品中文字幕 | 操韩国美女 | 男女超爽视频免费播放 | 日韩黄片一区二区三区 | 一级黄色片视频 | 亚洲久久色| 日本中文字幕视频在线 | 亚洲欧美日韩精品久久 | 超污巨黄的小短文 | 日韩精品视频免费 | 操操干| 亚洲综合日韩在线 | 欧美成人黑人xx视频免费观看 | 国产精品午夜未成人免费观看 | 91精品国产高清一区二区三区蜜臀 | 久久久久久国 | 天堂久久精品 | 欧美不卡一区二区 | 久草手机在线观看 | 亚洲国产精品久久久 | 亚洲乱视频 | 人妻少妇精品无码专区二区 | 欧美xxxx精品 | 日本高清二区 | 天堂av8| 亚洲欧美日本一区二区三区 | jizz亚洲女人高潮大叫 | 中国丰满人妻videoshd | 99久久国产宗和精品1上映 | 欧美乱轮视频 | 成人性视频网 | 原来神马电影免费高清完整版动漫 | 欧美一及片 | 久久精品久久久久久久 | 免费毛片小视频 | 天天色天天干天天 | 久久久久久久美女 | 啪啪啪一区二区 | 亚洲国产中文字幕 |