各色母子裝時尚氣場足

各色母子裝時尚氣場足

雖說娛樂圈新陳代謝能力強大,無數小花小鮮肉如雨後春筍般迅速崛起,老一輩的影視劇演員雖歷經大浪淘沙,但留下的往往都是精品,在熒屏中的風采不減當年。這其中就有女演員胡可,這位75后的女星塑角能力十分強大,本身也是個很好雕琢的璞玉,無論是民國裝還是清廷風還是古裝,都能駕馭得如魚得水。

當了母親的女星胡可也和普通媽媽一樣喜歡曬娃,不過她的曬娃方式卻是和兒子安吉一起上雜誌拍封面大片,母子親情裝可好看啦,只見胡可和兒子安吉都身着黑色外套,內搭白色上衣簡單清新,母子二人同樣的翹腿姿勢一個大佬氣場,一個軟萌,氣勢不一,但卻相處融洽。

當然身為母親的胡可笑起來也是溫婉動人,一身焦糖色風衣兼有清新甜美和英挺俊朗兩種韻味,安吉同樣也是一件淺灰色風衣搭配藍色牛仔褲,簡單搭配就把小男孩子的虎頭虎腦的活潑勁兒展現得淋漓盡致。兩人還同時手捧着一本兒童叢書,看來在家裡媽媽胡可沒少跟孩子一起互動學習呢。

 

這幅照片里的胡可換上了一套灰粉色的西裝套裝,小西裝外套別緻幹練,搭配一頭瀟洒的黑色短髮更是率性,白色腰封提高了腰際線,闊腿長褲用來凹造型可是個加分項呢。安吉則是一套灰白格紋西裝造型,小小紳士韻味不要太濃,一定黑色帽子更是酷炫到沒朋友。

這張照片里的小安吉一身紅白搭配的運動套裝非常顯眼,差點把母親胡可的黑皮衣搭配灰色包臀裙的風頭給搶走,更別提小安吉還背着一隻黑綠相間的包包了,顏色相撞也能沒把安吉的時尚感減少半分。母子二人雖然穿着樣式不一的單品,但是縈繞在母子間的溫馨情感卻很濃郁。

胡可這一身造型十分溫暖清新,雙色拼接的毛衣清新可人,淺藍褲子和安吉身上的衣服遙相呼應,小安吉整個人都趴在母親身上,小小的腦袋還磕在母親頭上,一大一小兩個齊劉海造型也是挺工整的,母子間的互動可以說很有愛了。

接下來就是小安吉的個人秀時間,一身藍色主題的安吉笑起來軟萌又可愛,墨藍色的萬濤搭配淺藍的襯衫內搭,如海洋般沉穩內斂,也如同天空般洒脫散漫,別看人家小安吉的時尚氣場這麼足,他今年才剛剛八歲哦,這笑起來一臉陽光也十分地惹人憐愛了。

小安吉凹起英倫學院風也是很酷的,灰色格紋外套鑲嵌黑邊,內搭白色圓領衛衣簡潔隨性,素雅間可見時尚,灰色短褲彰顯男孩子的活潑好動的天性,小黑鞋配白襪也是簡簡單單,這一身搭配讓躺在草地上蹺二郎腿的小安吉怎麼看怎麼可愛。

本站聲明:網站內容來源於江西熱線http://www.online.jx.cn,如有侵權請聯繫我們,我們將及時處理

【其他文章推薦】

※2020桃園婚紗攝影推薦一流團隊    

※婚禮籌備好崩潰!該找婚攝還是婚錄?新人必備教戰守則

※月子中心貴鬆鬆,找對到府月嫂省一半,更讓你事半功倍!!    

台東人氣名產台東人氣伴手禮,熱門獨家商品,現貨供應中

※新娘必看!桃園自助婚紗推薦名單  

涼拌山藥絲

文章導讀

山藥是很多人都比較喜歡吃的一種食物,山藥近些年來越來越受人們的喜歡,因為它的養生效果是非常不錯的,具有很好的調理身體的效果,山藥的吃法也是很多的,比如說可以做成涼拌山藥絲,吃起來特別的清爽,做法也是比較簡單的,在給山藥削皮的時候要預防山藥的黏液刺激了皮膚,我們來看一下涼拌山藥絲的做法。

涼拌山藥絲

材料

主料:山藥500克,

輔料:水發木耳10克,

調料:大蔥10克,姜8克,白砂糖5克,香油10克,冬菜10克,鹽3克

做法

1.將山藥去皮洗凈,切成細絲,用涼水洗五分鐘;

2.將木耳洗凈,切成細絲;

3.將山藥絲放進水鍋中焯熟后撈出,再過涼,瀝干水分;

4.將蔥、姜各切成絲,和精鹽、木耳絲一起拌入山藥絲中;

5.將香油、醋、糖調成汁,澆在山藥絲上即可食用。

小訣竅

此菜具有補脾,益肺,固腎,瘦身,美膚的作用。

食物相剋:

山藥:山藥與甘遂不要一同食用;也不可與鹼性藥物同服。

木耳(水發):木耳不宜與田螺同食,從食物藥性來說,寒性的田螺,遇上滑利的木耳,不利於消化,所以二者不宜同食。

患有痔瘡者木耳與野雞不宜同食,野雞有小毒,二者同食易誘發痔瘡出血。

木耳不宜與野鴨同食,野鴨味甘性涼,同時易消化不良。

網站內容來源https://www.cndzys.com/yinshi/網站內容來源https://www.cndzys.com/yinshi/

【其他文章推薦】

※廣受好評的【機場接送推薦

租車接送服務需要另外加價嗎?

台東人氣名產台東人氣伴手禮,熱門獨家商品,現貨供應中

※坐月子經驗談-新竹到府坐月子媽媽心得分享與交流

※給婚攝的迎娶婚禮錄影必拍清單,沒拍到您一定會後悔!

※旅遊不求人,帶你掌握小琉球民宿海景攻略

※各類招牌、海報、大圖輸出,急件製作施工!

街拍:打扮時尚的個性小姐姐

街拍:打扮時尚的個性小姐姐

時尚的外表下都有一顆愛美的心。打扮時髦的小姐姐,總能傳遞出一種與眾不同的效果,給人帶來不一般的美。今天,跟隨小編來看一下戶外這種時尚的個性小姐姐,有種走路都帶風的形象。

畫面上的小姐姐走在戶外,秀髮飄逸起來,彷彿有一種走路帶風的效果。膚白貌美的外表,與很好的衣品結合,穿出了她的冷艷氣質美,很好的突顯出她的個性特點,讓她個性張揚外露.

美女一身採用黑色,還修飾着各種飄逸的黑紗。在風中自帶飄逸感,讓她更有一種氣質外顯的效果。穿了一款黑色的弔帶背心,披着外套,走路的時候彷彿有一種“社會人”一般,很有氣場。

她穿了一款黑色的闊腿褲,與一雙尖嘴的高跟鞋搭配起來。這款闊腿褲的形象,可以很好的遮掩長腿,讓美腿在視覺上有一種更為勻稱的美感。與上身的黑色背心結合,一身全黑的打扮,帶來一種神秘的女人味道。

小姐姐的這身打扮,很具有時尚美女的個性感。穿衣氣質就能給人一種不一般的印象美。喜歡這種穿搭方式的美女嗎?希望小編分享的她,能給你帶來一點閱讀上的放鬆。

本站聲明:網站內容來源於江西熱線http://www.online.jx.cn,如有侵權請聯繫我們,我們將及時處理

【其他文章推薦】

※廣受好評的【機場接送推薦

租車接送服務需要另外加價嗎?

台東人氣名產台東人氣伴手禮,熱門獨家商品,現貨供應中

※坐月子經驗談-新竹到府坐月子媽媽心得分享與交流

※給婚攝的迎娶婚禮錄影必拍清單,沒拍到您一定會後悔!

※旅遊不求人,帶你掌握小琉球民宿海景攻略

※各類招牌、海報、大圖輸出,急件製作施工!

北歐四國旅遊局加大中國平台用戶推廣

  丹麥國家旅遊局、芬蘭國家旅遊局、挪威國家旅遊局、瑞典國家旅遊局與小紅書合作開啟的線上用戶活動於日前結束。活動期間,北歐四國旅遊局通過與小紅書社區用戶開展話題互動的方式鼓勵博主分享北歐旅遊靈感和美好嚮往,成功吸引到了平台用戶的廣泛關注,話題閱讀量達513萬,並收穫了大量個性化、高品質的內容。

  小紅書是目前中國深受年輕人喜愛的生活方式分享社區平台,截至2019年7月,小紅書的註冊用戶已達3億,其中80%為女性用戶,70%為90后,每日社區筆記曝光次數超過30億次。

  本次活動中,北歐四國旅遊局均在小紅書平台建立了官方賬號,為平台用戶推薦打卡榜單,並從自然、美食、生活方式三個方面切入,將目的地與內容有溫度地結合,開展了多維度的內容傳播。

  童話王國丹麥此次不僅推出了打卡童心童趣的安徒生之旅,還推薦了解讀別緻的設計和品嘗當地的特色美食之旅。

  千湖之國芬蘭有着廣袤蒼翠的森林,豐饒而輕盈的波羅的海島嶼,靜謐的拉普蘭荒原以及18.8萬個澄藍的湖泊。芬蘭旅遊局在小紅書平台上推薦了從赫爾辛基一路向拉普蘭前行這一可深入感受芬蘭人生活的旅行線路。

  作為世界上擁有最綿長海岸線的國家之一,挪威的峽灣、冰川和山峰,無一不蘊含着偉大的原始力量。此次挪威在小紅書上將其群島與海灣、北極光和冬日美景一一展現給平台用戶,鼓勵遊客前來親身體驗。

  瑞典是北歐地區領土面積最大的國家,這裏純凈怡人的自然風光與風格獨特的時尚都市完美契合,吸引着全世界的旅行者。瑞典首都斯德哥爾摩、終年不凍港哥德堡、現代水晶藝術王國斯莫蘭省、濃郁北歐田園風情的斯科納省、擁有冰酒店的拉普蘭,都是此次活動中瑞典重點推薦之地。

本站聲明:網站內容來源再生能源資訊網http://toptour.cn/,如有侵權請聯繫我們,我們將及時處理

【其他文章推薦】

桃園機場租車可以要求甲租乙還服務?

※2020人氣涮嘴零食【牛軋糖】票選為最佳送禮熱賣商品

※省錢度蜜月!想知道哪裡可以找到最優惠的桃園婚紗工作室呢?

台東人氣名產台東人氣伴手禮,熱門獨家商品,現貨供應中

※“上班這黨事”節目推薦牛軋糖,辦公涮嘴零食NO.1

日媒:沖繩首里城火災基本確定起火點在正殿一層

  據日本共同社2日報道,監控攝像頭拍到了日本沖繩縣那霸市首里城三層木造正殿等火災起火不久后,火焰從正殿一層噴出的影像。沖繩縣警方同時基於保安等的證詞,已基本確定起火點在正殿一層。之後將以火焰升騰的北側為中心推進現場勘查,加緊鎖定起火原因。

  共同社通過相關人士了解到,正殿一層的北側附近設有配電設施。警方將仔細調查是否與火災有關。辦案相關人員稱,正殿內沒有從外部入侵的痕迹,警方認為縱火的可能性較低。

  據消防部門透露,10月31日凌晨2點34分,正殿內遇熱報警的傳感器啟動,消防於2點50分抵達。相關人士稱,監控攝像頭拍攝正殿的外觀,記錄下了消防抵達前一層東側有火焰從內向外噴出的情景。

  攝像頭還拍攝到,噴射水幕防止火從外部入侵的“水簾”啟動,暫時延緩了火勢,以及趕到現場的保安開展初期滅火的情景。

  監控攝像頭另外在正殿內也設置了7個。但這些影像比較暗,目前似乎沒有從中獲得有助於確定起火原因的有效信息。

  繼1日以後,警方與消防仍在正殿北側附近進行現場勘查。由於工作主要是在清除瓦礫,預計鎖定起火原因尚需時間。

  預計在此次火災中,正殿等7棟主要設施過火面積合計達4000平米以上,漆器和繪畫等400件以上的藏品被燒毀。

本站聲明:網站內容來源再生能源資訊網http://toptour.cn/,如有侵權請聯繫我們,我們將及時處理

【其他文章推薦】

※2020桃園婚紗攝影推薦一流團隊    

※婚禮籌備好崩潰!該找婚攝還是婚錄?新人必備教戰守則

※月子中心貴鬆鬆,找對到府月嫂省一半,更讓你事半功倍!!    

台東人氣名產台東人氣伴手禮,熱門獨家商品,現貨供應中

※新娘必看!桃園自助婚紗推薦名單  

引領“頂上”時尚,頭髮的N種想象

引領“頂上”時尚,頭髮的N種想象 

俗話說,髮型選不對,顏值再高都白廢!衣服換季,髮型也要跟上速度才夠時髦。如今,假髮不僅是脫髮人士的“剛需”,而已成為配飾中的時髦單品。一頂假髮,可以讓你隨時隨地隨心而變,“從頭開始”實現百分百好感造型。       作為站在潮流尖端的“風尚人物”,明星中沉迷假髮的人不在少數。楊冪就是其中之一。無論是紅色綠色,還是“媽媽卷”“波波頭”,楊冪都玩得不亦樂乎。         吳昕有很多令人印象深刻的短髮造型都是依靠假髮完成的,這款飽滿豐盈的髮型便是其中之一。蓬鬆靈動的髮絲微微翻翹,彰顯了浪漫唯美的法式風情。發尾也可以修剪為碎發,營造多重風格。         如果你的印象中,假髮還是用整個頭套“罩”在頭上那真的就Out了!假髮不僅擅長打造短髮造型,馬尾也同樣可以很精彩。吳昕的這組時尚雜誌大片就是利用彩色發片配搭出嬌俏的馬尾,展現出時尚態度。           戚薇不僅自己熱愛用假髮打造不同造型,還在微博發布了小視頻,“親身上陣”教粉絲如何利用一頂假髮來打造“狗啃式”劉海。           再看范冰冰最經典的戛納紅毯造型之一——“花仙子”。為了貼合造型,范冰冰使用了“劉海發塊”,運用編髮的手法使真發與假髮劉海完美融合,清涼感十足。         假髮能夠達到風格百變的效果,當范冰冰接上蓬鬆的捲髮和灰色的漸變馬尾時,瞬間氣場十足。假髮還增添了層次感,漸變的高馬尾也使整個髮型看起來很有衝擊力,更加炫酷。         此前,吳謹言以“丸子頭”造型登上越南版《時尚先生》封面,這款精心打造的丸子頭飽滿而豐盈,格外搶鏡,鬢角隨性的碎發更表現出她自然本真的獨特氣質。         明星登台演出更離不開假髮。此前,許晴頂着一頭特製的假髮,在賴聲川話劇《如夢之夢》中驚艷亮相。她飾演的顧香蘭,穿上旗袍身姿曼妙,一顰一笑都抓人眼球。風情萬種的造型給她的表演大大加分。       不僅女明星需要假髮來裝扮造型,很多“小鮮肉”登台也離不開假髮“幫忙”。今年春晚上,易烊千璽的髮型就被眼尖的觀眾認出是戴了假髮套。“四字弟弟”假髮造型的話題還在春節期間登上了微博熱搜。工作室也大方承認:“會接頭髮的Tony返鄉過年了,今天上班的是會戴發套的Tony。”     無論是復古“BOB頭”,性感“鎖骨發”,還是瀟洒“黑長直”,假髮都可以助你輕鬆完成想要的造型。假髮發塊可以用來打造頭頂的飽滿豐盈感,改變扁塌現狀。簡單打理就可以營造出的蓬鬆感,增添了慵懶的氣質,搭配空氣劉海,美得很自然。   如果你不需要“頂上遮瑕”,只想換種髮型,也可以從基礎款假髮發套入手,比如偏分發套,微卷的弧度帶來自然柔順的效果,長度適中,對臉型沒有過多限制,適合大多數女生。

本站聲明:網站內容來源於江西熱線http://www.online.jx.cn,如有侵權請聯繫我們,我們將及時處理

【其他文章推薦】

桃園機場租車可以要求甲租乙還服務?

※2020人氣涮嘴零食【牛軋糖】票選為最佳送禮熱賣商品

※省錢度蜜月!想知道哪裡可以找到最優惠的桃園婚紗工作室呢?

台東人氣名產台東人氣伴手禮,熱門獨家商品,現貨供應中

※“上班這黨事”節目推薦牛軋糖,辦公涮嘴零食NO.1

氣質的緊身打底褲時尚美女

氣質的緊身打底褲時尚美女

打底褲褲腿捲起來穿更加的帥氣時尚清秀的長腿好有魅力,穿出時尚惹人愛更是顯陽光朝氣蓬勃,讓你穿上瞬間就成為長腿美女,吸引眼球卻又不顯突兀,有一件保暖又輕薄的打底褲是必須的,精緻的袋中袋設計採用立體剪裁工藝,經典的純凈素色與彈力T恤廓型結合,讓你溫度與風度同擁有而修身的款型把身材彰顯得淋漓盡致,小清新更顯時尚同時顯瘦效果更棒。

悠閑舒適的打底褲裝扮就是這樣會讓你心情愉悅,既可外穿也可打底的百搭鉛筆褲還可以展現出緊緻的身體線條,像這款採納時髦的收腰設計造型非常的時髦,所有深受眾多時尚美女的青睞,柔軟親膚的布料顯得非常的精緻美觀。能滿足你那充滿詩意的意境,使得你日常穿搭非常的舒服無論是在家休閑每一步都毫無壓力。

打底褲很時尚讓你顯瘦顯氣質,同時對於身材的塑造效果無需太多的形容,看起來更加的優雅大氣穿上就能美美噠。今天上一組打底褲美女。打底褲的好處是讓搭配變得很簡單,尤其是穿春裝的季節,打底褲真的可以大顯神通了。上面圖片中的時尚姑娘,穿一條黑色的打底褲,她的上衣很是色彩繽紛,裏面穿一件水紅色的帶帽衛衣,外面是五顏六色圖案的夾克衫。

萬能搭配潮流范的打底褲會讓你回頭率百分百,讓你看起來氣質高雅穿上回頭率十足,簡單大方的打底褲,穿出女性的獨特魅力,讓人移不開視線。緊身設計的衣服能夠讓人感受到衣服的美感,充滿着女性魅力。穿上緊身褲的你,就會擁有一雙大長腿,非常的苗條,擁有女神的風格。並且打底褲的樣式簡單,能夠讓你擁有靚麗的街頭風格,讓你變得十分有吸引力。

時尚個性,氣質打底褲都很出眾,完全透露出女人的非凡側面,休閑時尚的款式和修長的腰身,是一款流行優雅的打底褲,纖細的腿部優雅大氣,時尚個性,展現出非凡的女神氣質!氣質的緊身打底褲美女走在路上很吸睛優雅,是街頭風格最好的詮釋。幫你抵禦嚴寒穿着舒適讓這條打底裙散發出另一種風情,整體時尚歐美的風格十分的簡約能很好修飾身材從而更加的完美有型。

本站聲明:網站內容來源於江西熱線http://www.online.jx.cn,如有侵權請聯繫我們,我們將及時處理

【其他文章推薦】

※2020桃園婚紗攝影推薦一流團隊    

※婚禮籌備好崩潰!該找婚攝還是婚錄?新人必備教戰守則

※月子中心貴鬆鬆,找對到府月嫂省一半,更讓你事半功倍!!    

台東人氣名產台東人氣伴手禮,熱門獨家商品,現貨供應中

※新娘必看!桃園自助婚紗推薦名單  

國家文物局:中法達成共識 中國專家將參与巴黎聖母院修復工作

  記者6日從國家文物局獲悉,中法雙方6日在京簽署合作文件,就巴黎聖母院修復開展合作,中國專家將參與巴黎聖母院修復工作。

  根據這份文件,中法雙方將在2020年確定巴黎聖母院保護修複合作的主題、模式及中方專家人選,儘早選派中國專家與法國團隊共同參與現場修復工作。

  文件還明確中法雙方將就陝西秦始皇陵兵馬俑保護開展技術與科學交流及培訓項目。

  “以文明交流超越文明隔閡,以文明互鑒超越文明衝突,以文明共存超越文明優越。”國家文物局局長劉玉珠表示,今年4月巴黎聖母院發生火災後,中法文化遺產主管部門間多次函件來往,討論合作設想。巴黎聖母院是法國乃至歐洲的文明象徵之一,其火災後修復工作受到法國國內的高度重視和國際社會的高度關注。秦始皇陵兵馬俑是享有國際盛譽的中國文化遺產,其保護研究也一直廣受國際關注。選取巴黎聖母院和秦始皇陵兵馬俑這兩個兩國各自最具標誌性的文化遺產開展保護修復和研究,將極大拓展中法文化遺產合作的深度,在世界範圍內產生積極示範效應。(記者施雨岑)

本站聲明:網站內容來源再生能源資訊網http://toptour.cn/,如有侵權請聯繫我們,我們將及時處理

【其他文章推薦】

※廣受好評的【機場接送推薦

租車接送服務需要另外加價嗎?

台東人氣名產台東人氣伴手禮,熱門獨家商品,現貨供應中

※坐月子經驗談-新竹到府坐月子媽媽心得分享與交流

※給婚攝的迎娶婚禮錄影必拍清單,沒拍到您一定會後悔!

※旅遊不求人,帶你掌握小琉球民宿海景攻略

※各類招牌、海報、大圖輸出,急件製作施工!

《Java多線程面試題》系列-創建線程的三種方法及其區別

1. 創建線程的三種方法及其區別

1.1 繼承Thread類

首先,定義Thread類的子類並重寫run()方法:

package com.zwwhnly.springbootaction.javabase.thread;

public class MyFirstThread extends Thread {
    @Override
    public void run() {
        for (int i = 0; i < 5; i++) {
            System.out.printf("[MyFirstThread]輸出:%d,當前線程名稱:%s\n",
                    i, getName());
        }
    }
}

然後,創建該子類的實例並調用start()方法啟動線程:

package com.zwwhnly.springbootaction.javabase.thread;

public class ThreadTest {
    public static void main(String[] args) {
        System.out.println("主線程開始執行,當前線程名稱:" +
                Thread.currentThread().getName());

        Thread firstThread = new MyFirstThread();
        firstThread.start();

        System.out.println("主線程執行結束,當前線程名稱:" +
                Thread.currentThread().getName());
    }
}

運行結果如下所示:

主線程開始執行,當前線程名稱:main

主線程執行結束,當前線程名稱:main

[MyFirstThread]輸出:0,當前線程名稱:Thread-0

[MyFirstThread]輸出:1,當前線程名稱:Thread-0

[MyFirstThread]輸出:2,當前線程名稱:Thread-0

[MyFirstThread]輸出:3,當前線程名稱:Thread-0

[MyFirstThread]輸出:4,當前線程名稱:Thread-0

從運行結果可以看出以下2個問題:

  1. 程序中存在2個線程,分別為主線程main和自定義的線程Thread-0。
  2. 調用firstThread.start();,run()方法體中的代碼並沒有立即執行,而是異步執行的。

查看Thread類的源碼,可以發現Thread類實現了接口Runnable:

public class Thread implements Runnable {
    // 省略其它代碼
}

這裡是重點,面試常問!

1.2 實現Runnable接口(推薦)

首先,定義Runnable接口的實現類並實現run()方法:

package com.zwwhnly.springbootaction.javabase.thread;

public class MySecondThread implements Runnable {
    @Override
    public void run() {
        for (int i = 0; i < 5; i++) {
            System.out.printf("[MySecondThread]輸出:%d,當前線程名稱:%s\n",
                    i, Thread.currentThread().getName());
        }
    }
}

然後,調用Thread類的構造函數創建Thread實例並調用start()方法啟動線程:

package com.zwwhnly.springbootaction.javabase.thread;

public class ThreadTest {
    public static void main(String[] args) {
        Runnable target = new MySecondThread();
        Thread secondThread = new Thread(target);
        secondThread.start();
    }
}

運行結果如下所示:

主線程開始執行,當前線程名稱:main

主線程執行結束,當前線程名稱:main

[MySecondThread]輸出:0,當前線程名稱:Thread-0

[MySecondThread]輸出:1,當前線程名稱:Thread-0

[MySecondThread]輸出:2,當前線程名稱:Thread-0

[MySecondThread]輸出:3,當前線程名稱:Thread-0

[MySecondThread]輸出:4,當前線程名稱:Thread-0

可以看出,使用這種方式和繼承Thread類的運行結果是一樣的。

1.3 實現Callable接口

首先,定義Callable接口的實現類並實現call()方法:

package com.zwwhnly.springbootaction.javabase.thread;

import java.util.Random;
import java.util.concurrent.Callable;

public class MyThirdThread implements Callable<Integer> {
    @Override
    public Integer call() throws Exception {
        Thread.sleep(6 * 1000);
        return new Random().nextInt();
    }
}

然後,調用FutureTask類的構造函數創建FutureTask實例:

Callable<Integer> callable = new MyThirdThread();
FutureTask<Integer> futureTask = new FutureTask<>(callable);

最後,調用Thread類的構造函數創建Thread實例並調用start()方法啟動線程:

package com.zwwhnly.springbootaction.javabase.thread;

import java.util.concurrent.Callable;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.FutureTask;

public class ThreadTest {
    public static void main(String[] args) {
        System.out.println("主線程開始執行,當前線程名稱:" +
                Thread.currentThread().getName());

        Callable<Integer> callable = new MyThirdThread();
        FutureTask<Integer> futureTask = new FutureTask<>(callable);
        new Thread(futureTask).start();

        try {
            System.out.println("futureTask.isDone() return:" + futureTask.isDone());

            System.out.println(futureTask.get());

            System.out.println("futureTask.isDone() return:" + futureTask.isDone());
        } catch (InterruptedException | ExecutionException e) {
            e.printStackTrace();
        }

        System.out.println("主線程執行結束,當前線程名稱:" +
                Thread.currentThread().getName());
    }
}

運行結果如下所示:

主線程開始執行,當前線程名稱:main

futureTask.isDone() return:false

-1193053528

futureTask.isDone() return:true

主線程執行結束,當前線程名稱:main

可以發現,使用Callable接口這種方式,我們可以通過futureTask.get()獲取到線程的執行結果,而之前的2種方式,都是沒有返回值的。

注意事項:調用futureTask.get()獲取線程的執行結果時,主線程會阻塞直到獲取到結果。

阻塞效果如下圖所示:

1.4 區別

以下是重點,面試常問!

  1. Java中,類僅支持單繼承,如果一個類繼承了Thread類,就無法再繼承其它類,因此,如果一個類既要繼承其它的類,又必須創建為一個線程,就可以使用實現Runable接口的方式。
  2. 使用實現Runable接口的方式創建的線程可以處理同一資源,實現資源的共享。
  3. 使用實現Callable接口的方式創建的線程,可以獲取到線程執行的返回值、是否執行完成等信息。

關於第2點,可以通過如下示例來理解。

假如我們總共有10張票(共享的資源),為了提升售票的效率,開了3個線程來售賣,代碼如下所示:

package com.zwwhnly.springbootaction.javabase.thread;

public class SaleTicketThread implements Runnable {
    private int quantity = 10;

    @Override
    public void run() {
        while (quantity > 0) {
            System.out.println(quantity-- + " is saled by " +
                    Thread.currentThread().getName());
        }
    }
}
public static void main(String[] args) {
    Runnable runnable = new SaleTicketThread();
    Thread saleTicketThread1 = new Thread(runnable);
    Thread saleTicketThread2 = new Thread(runnable);
    Thread saleTicketThread3 = new Thread(runnable);

    saleTicketThread1.start();
    saleTicketThread2.start();
    saleTicketThread3.start();
}

因為3個線程都是異步執行的,因此每次的運行結果可能是不一樣,以下列舉2次不同的運行結果。

第1次運行結果:

10 is saled by Thread-0

8 is saled by Thread-0

7 is saled by Thread-0

5 is saled by Thread-0

9 is saled by Thread-1

3 is saled by Thread-1

2 is saled by Thread-1

1 is saled by Thread-1

4 is saled by Thread-0

6 is saled by Thread-2

第2次運行結果:

10 is saled by Thread-0

9 is saled by Thread-0

8 is saled by Thread-0

7 is saled by Thread-0

6 is saled by Thread-0

5 is saled by Thread-0

3 is saled by Thread-0

2 is saled by Thread-0

4 is saled by Thread-2

1 is saled by Thread-1

如果將上面的SaleTicketThread修改成繼承Thread類的方式,就變成了3個線程各自擁有10張票,即變成了30張票,而不是3個線程共享10張票。

2. Thread類start()和run()的區別

2.1 示例

因為實現Runnable接口的優勢,基本上實現多線程都使用的是該種方式,所以我們將之前定義的MyFirstThread也修改為實現Runnable接口的方式:

package com.zwwhnly.springbootaction.javabase.thread;

public class MyFirstThread implements Runnable {
    @Override
    public void run() {
        for (int i = 0; i < 5; i++) {
            System.out.printf("[MyFirstThread]輸出:%d,當前線程名稱:%s\n",
                    i, Thread.currentThread().getName());
        }
    }
}

然後仍然沿用之前定義的MyFirstThread、MySecondThread,我們先看下調用start()的效果:

package com.zwwhnly.springbootaction.javabase.thread;

public class ThreadTest {
    public static void main(String[] args) {

        System.out.println("主線程開始執行,當前線程名稱:" +
                Thread.currentThread().getName());

        Thread firstThread = new Thread(new MyFirstThread());

        Runnable target = new MySecondThread();
        Thread secondThread = new Thread(target);

        firstThread.start();
        secondThread.start();

        System.out.println("主線程執行結束,當前線程名稱:" +
                Thread.currentThread().getName());
    }
}

運行結果(注意:多次運行,結果可能不一樣):

主線程開始執行,當前線程名稱:main

[MyFirstThread]輸出:0,當前線程名稱:Thread-0

[MyFirstThread]輸出:1,當前線程名稱:Thread-0

[MySecondThread]輸出:0,當前線程名稱:Thread-1

主線程執行結束,當前線程名稱:main

[MySecondThread]輸出:1,當前線程名稱:Thread-1

[MySecondThread]輸出:2,當前線程名稱:Thread-1

[MySecondThread]輸出:3,當前線程名稱:Thread-1

[MySecondThread]輸出:4,當前線程名稱:Thread-1

[MyFirstThread]輸出:2,當前線程名稱:Thread-0

[MyFirstThread]輸出:3,當前線程名稱:Thread-0

[MyFirstThread]輸出:4,當前線程名稱:Thread-0

可以看出,調用start()方法后,程序中有3個線程,分別為主線程main、Thread-0、Thread-1,而且執行順序不是按順序執行的,存在不確定性。

然後將start()方法修改為run()方法,如下所示:

firstThread.run();
secondThread.run();

此時的運行結果如下所示(多次運行,結果是一樣的):

主線程開始執行,當前線程名稱:main

[MyFirstThread]輸出:0,當前線程名稱:main

[MyFirstThread]輸出:1,當前線程名稱:main

[MyFirstThread]輸出:2,當前線程名稱:main

[MyFirstThread]輸出:3,當前線程名稱:main

[MyFirstThread]輸出:4,當前線程名稱:main

[MySecondThread]輸出:0,當前線程名稱:main

[MySecondThread]輸出:1,當前線程名稱:main

[MySecondThread]輸出:2,當前線程名稱:main

[MySecondThread]輸出:3,當前線程名稱:main

[MySecondThread]輸出:4,當前線程名稱:main

主線程執行結束,當前線程名稱:main

可以看出,調用run()方法后,程序中只有一個主線程,自定義的2個線程並沒有啟動,而且執行順序也是按順序執行的。

1.2 總結

以下是重點,面試常問!

  • run()方法只是一個普通方法,調用之後程序會等待run()方法執行完畢,所以是串行執行,而不是并行執行。
  • start()方法會啟動一個線程,當線程得到CPU資源後會自動執行run()方法體中的內容,實現真正的併發執行。

3. Runnable和Callable的區別

在文章前面的章節中(1.2 實現Runnable接口 和1.3 實現Callable接口),我們了解了如何使用Runnable、Callable接口來創建線程,現在我們分別看下Runable和Callable接口的定義,其中,Runable接口的定義如下所示:

public interface Runnable {
    public abstract void run();
}

Callable接口的定義如下所示:

public interface Callable<V> {
    V call() throws Exception;
}

由此可以看出,Runnable和Callable的區別主要有以下幾點:

  1. Runable的執行方法是run(),Callable的執行方法是call()
  2. call()方法可以拋出異常,run()方法如果有異常只能在內部消化
  3. 實現Runnable接口的線程沒有返回值,實現Callable接口的線程能返回執行結果
  4. 實現Callable接口的線程,可以和FutureTask一起使用,獲取到線程是否完成、線程是否取消、線程執行結果,也可以取消線程的執行。

4. 源碼及參考

源碼地址:,歡迎下載。

如果覺得文章寫的不錯,歡迎關注我的微信公眾號:「申城異鄉人」,所有博客會同步更新。

如果有興趣,也可以添加我的微信:zwwhnly_002,一起交流和探討技術。

本站聲明:網站內容來源於博客園,如有侵權,請聯繫我們,我們將及時處理

【其他文章推薦】

※廣受好評的【機場接送推薦

租車接送服務需要另外加價嗎?

台東人氣名產台東人氣伴手禮,熱門獨家商品,現貨供應中

※坐月子經驗談-新竹到府坐月子媽媽心得分享與交流

※給婚攝的迎娶婚禮錄影必拍清單,沒拍到您一定會後悔!

※旅遊不求人,帶你掌握小琉球民宿海景攻略

※各類招牌、海報、大圖輸出,急件製作施工!

輕鬆分娩:孕婦分娩技巧

  十月懷胎一朝分娩。每當產期臨近,准媽媽難免會心裏緊張,不知所措,其實大可不必。

  首先識別分娩的先兆。正式臨產前,孕婦往往會出現一些癥狀,預示着即將正式臨產,如不規則子宮收縮,常在夜間出現而白天消失,每次間隔時間可長可短,每次持續時間不長於30秒,孕婦可感到輕微腰酸,下腹輕微脹痛。正式臨產前1—2天陰道出現少量血性粘液自陰道流出,稱為見紅。有些孕婦可於正式臨產前發生胎膜破裂,羊水自陰道流出,此時孕婦應卧床,立即到醫院就診,特別是臀位的產婦,要預防臍帶脫垂。

  由於人們對分娩的不正確認識,致使普遍存在對分娩所產生的疼痛的恐懼,恐懼則會導致緊張,緊張更加劇了疼痛,這就直接影響分娩的進程,並對產婦的心理產生影響。其實,我們可以通過以下一些技巧來應對。

  一是臨產後由家人陪伴,由助產士指導,分散注意力,一起扯一扯產婦感興趣的話題,並講解分娩的過程,使產婦掌握分娩知識,有效地緩解分娩過程中的不適,從而降低對宮縮的感受力。

  二是調節呼吸的頻率和節律,當運動或精神緊張時,呼吸頻率就加劇,主動調整呼吸的頻率和節律,可緩解由於分娩所產生的壓力,增強產婦的自我控制意識,當轉移注意力的方法不能幫助產婦緩解分娩的不適時,可選擇慢-胸式呼吸,呼吸的頻率調整為正常的1/2,隨着宮縮頻率和強度的增加則可選擇淺式呼吸,其頻率為正常呼吸的2倍,不適達到最強的程度選用喘吹式呼吸:4次短淺呼吸后吹一口氣。

  三是適當採用一些可令產婦放鬆的技巧。如由家屬或助產士觸摸產婦緊張部位,並指導其放鬆,反覆的表揚鼓勵產婦並講解進展情況,必要時可使用笑氣鎮痛。對有一定音樂欣賞能力的產婦選擇舒緩的音樂放鬆。

  當宮口開全時,產婦疼痛有所緩解,有種大便感,工作人員會指導產婦屏氣用力的正確方法,此時產婦要調整自己的心理和體力,积極配合,正確用力,以加速產程進展,否則消耗體力影響產程進展而使產程延長,胎兒易發生宮內窒息及顱內出血。



: 分娩期相關

本站聲明:網站內容來源媽咪愛嬰網http://www.baby611.com,如有侵權,請聯繫我們,我們將及時處理

【其他文章推薦】

桃園機場租車可以要求甲租乙還服務?

※2020人氣涮嘴零食【牛軋糖】票選為最佳送禮熱賣商品

※省錢度蜜月!想知道哪裡可以找到最優惠的桃園婚紗工作室呢?

台東人氣名產台東人氣伴手禮,熱門獨家商品,現貨供應中

※“上班這黨事”節目推薦牛軋糖,辦公涮嘴零食NO.1