《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,一起交流和探討技術。

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

【其他文章推薦】

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

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

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

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

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

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

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

2019流行趨勢 9大時尚風格搶先看

2019流行趨勢 9大時尚風格搶先看

巴黎的設計師們從來就沒有忘記剪裁考究的的魅力——尤其是黑色的經典款佔據了最受歡迎的款式。今年受女權運動的影響,不少設計師在2019設計中加入了黑色西裝這一款式,和往季相比,這些西裝廓形更為寬鬆,肩線分明且版型挺闊,有着男裝的硬朗,中性風十足,在一定程度上表現出女性英姿颯爽的一面。           熱帶圖案被轉換為當代市場中擁有精緻的審美。色調通常擁有廣泛的色區值,兩個色調對比帶來的強烈撞擊來定義廓形。                 追求性感在現在的社會裡已經不是一件可恥的事,反而變成了流行的代名詞。網紗正是這一背景下設計師推崇的一種設計,通過魚網這種輕柔的材質,能很好的表現出女性身體那獨特而又優雅的美感,性感中又不顯得裸露,給人一種飄逸、朦朧的感覺。           大膽的寬肩   當談到誇張的肩寬時,就會讓我媽想到80年代,那時候媽媽衣服上誇張的墊肩不知道你是否還記得,像是肩膀越寬氣質越大似的。但後來,寬肩一度被打入冷宮,越來越多的落肩外套開始出現,時尚似乎變的看起來不那麼做作一些。直到這兩年,大膽的肩膀設計重新回到了時尚舞台~           波爾卡圓點   曾幾何時,波潛文化席捲全球時尚的時候,淘氣的波爾卡圓點趁勝將自己推到時尚的最前線。成為成就女生俏皮乖巧的利器,而今年波爾卡圓點重新回到時尚的舞台,清新又可愛的波爾卡圓點,蕾連衣裙組合之後更顯質感,也不怎麼挑人;秀場上的長款波點裙更是仙氣飄飄,小波點和紗裙組合擺脫老氣感,讓復古的波點也變得仙氣起來,是很受搭配歡迎的一種元素呢。         碎花   一談起碎花,很多人都會想到這不是70、80年代流行的嗎?也太老土了吧!但其實,越來越復古的流行趨勢,讓碎花潮流悄悄的進入了時髦單品的前列,在今年的巴黎時裝秀上,各種各樣的碎花設計成為設計師們的又一個大熱門。同等大小的碎花:配以輕薄飄逸的質料,隱約現出的內襯,柔美顯氣質,給人一種愉悅舒服的享受感~         印花   凌亂美可能是近段時裝周里出現最多的一種設計元素了,而當中最常用的表現形式就是通過服裝上那複雜的印花工藝。這些印花的種類非常多樣、各種天馬行空的形狀都有,在2019年的時裝潮流中,印花將繼續獨領風騷。值得注意的是,2019年的印花趨勢中,或者花卉圖樣和塗鴉圖案相對來說會更受歡迎。

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

【其他文章推薦】

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

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

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

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

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

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

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

改善產後抑鬱的3個注意事項

產後抑鬱症是一種常見的心理疾病,通常情況下是產婦過於擔心,過於緊張所致。當產婦患有抑鬱症之後,不僅要自己懂得調理心情,更需要家人和關心與照顧。尤其是丈夫的理解,對於緩解產後抑鬱有較好的效果。

除此之外,治療產後抑鬱症,專家給媽咪們提出了3個注意事項:

一.產後抑鬱的3種建議治療方法

對於產後抑鬱,目前醫學上建議採用綜合治療方法,包括:

1. 心理治療:適用於輕中度產後抑鬱。心理治療可以使產後抑鬱患者宣洩, 感到被支持、尊重、理解, 信心增強, 加強自我控制及建立與他人良好交流的能力, 激發患者的內在動力, 去應付自身問題。心理治療對產後抑鬱症顯著有效, 同時不會給母乳餵養的嬰兒造成危險。應被視為產後抑鬱症的一線治療;

2. 藥物治療:癥狀明顯或顯著影響日常生活的患者,需要在心理治療的基礎上合併抗抑鬱藥物治療。應注意的是,哺乳期使用藥物可能給嬰兒帶來不良反應,因此必須在專業醫生指導下使用;

3.其他治療:已有研究表明音樂治療,光療,中醫中藥治療,芳香療法等均可起到改善焦慮和抑鬱的作用。您說的戶外活動,增加與人交往都是很重要的自我調適方法,對緩解產後情緒不良很有好處。

二、針灸治療改善睡眠可緩解抑鬱

可以想象,一邊照顧嬰兒,一邊自己的身體還需要恢復,生活節律又突然被打亂,新媽媽的前三個月是最為辛苦的。給您的建議是,不要在孩子睡覺的時候自己還忙於操持家務,要盡可能休息、補覺。夜間睡眠的房間應避免光亮,不要為了照顧孩子方便還開着燈睡覺。

如果確實睡眠困難的話,又擔心服藥的副作用,可以考慮針灸治療,對睡眠有較好的改善作用。如果睡眠改善了,情緒仍不能明顯改善,就去找醫生評估以決定下一步的解決方案。

二、海魚可抗抑鬱,但更要注意營養均衡

海魚里含有人體不能合成的omega-3脂肪酸,有研究表明這種營養物質有一定的抗抑鬱作用。儘管如此,通過常吃魚來攝入的omega-3脂肪酸依然是比較微量的,能起到的抗抑鬱作用也就比較微弱了。產後保持營養均衡,充足的優質蛋白和維生素的攝入最為重要,不必為了某些目的而偏食挑食。

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

【其他文章推薦】

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

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

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

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

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

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

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

時尚街拍,現在真是美女的時代

時尚街拍,現在真是美女的時代

時尚街拍,現在真是美女的時代,簡約時尚盡顯活力,小姐姐的穿衣打扮簡約舒適又優雅時尚,穿搭很漂亮,又氣質女人,衣裝搭配很時尚,柔軟和耐看很不錯也不會過於默默無聞,姑娘的清新百搭可真美

這位美女這種穿衣要風度,穿搭很有風格,看到漂亮小姐姐這樣要風度不要溫度的搭配風格,你會被她吸引嗎,綻放出美女不一般的魅力

這位年紀不大的美女,穿搭溫婉有魅力,走起路來優雅知性,充滿了都市女人的成熟味,這樣穿衣服顯得十分幹練與精緻,帶有幾分時尚魅力

這位年輕時尚的女人,穿衣打扮很清純,青春又甜美,是一個五官精緻的潮流女郎,凸顯小姐姐迷人的曲線身材,特別是一雙纖細的大長腿

過年期間其實學習一些成熟簡約的風格穿搭,就能夠讓你的形象有所提升,選擇一些與衣服相契合的配飾,也許能夠讓你的整體造型更加出彩。,看完本篇文章的你們有沒有什麼感慨?有沒有什麼想說的

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

【其他文章推薦】

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

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

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

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

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

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

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

什麼是產後精神障礙?

神經外科專家指出患有產後憂鬱症的婦女、通常有焦慮及強迫特質或出現過度自我控制和順從、對母親角色易產生衝突和適應不良、故無法克服母育工作的壓力。另有專家認為懷孕期情緒壓力和高度焦慮易於發生產後精神異常。

產後精神障礙主要有:

產後憂鬱綜合征:是在產褥早期最常見的精神障礙,主要表現為不明原因的陣發性哭泣和憂鬱,產婦還可以伴有感覺疲勞、容易激動、不安、睡眠不好甚至失眠、以及與丈夫發生隔閡等。

產後抑鬱症:產後抑鬱症指產後產生的抑鬱,較產後憂鬱綜合征為重,但較產後精神病為輕,發病較高。一般在產後兩個星期內發病,至產後4-6周內逐漸明顯,表現為產後心理不適、睡眠不足,病人感到疲乏無力、煩躁、易怒、悲觀厭世、有犯罪感、嚴重者不能照料嬰兒,甚至有傷嬰者。

產後精神病:產後精神病是因妊娠和分娩而誘發產後的精神障礙。一般在產後兩周內發病,出現的癥狀依次為行為紊亂、情感不適、緘默少語、消極觀念、意識障礙、情緒高漲、自罪自責等。

專家還提醒到:導致孕、產婦精神疾病的原因多種多樣,主要是在妊娠、分娩及產後整個活動過程中所發生的機體內在環境的變化、心理因素、產後感染的毒性反應等。所以當對於這一方面的人群要多加註意了,預防患上這麼一類疾病。

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

【其他文章推薦】

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

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

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

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

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

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

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

歐陽娜娜,不晒成績曬時尚穿搭

歐陽娜娜,不晒成績曬時尚穿搭

輟學進軍演藝圈,這種現象在娛樂圈裡並非少見,特別是很多從童星就開始紅的小明星們,小小年紀就開始忙起了自己的事業,這到底是一件好事還是壞事呢?答案肯定是利弊都有哈。

 

 

很多人在18歲的時候,還是生活在校園裡,但是,18歲的歐陽娜娜卻已經開始了她與常人不一樣的人生。被演戲耽誤了幾年的歐陽娜娜,最終還是選擇回到校園繼續深造,其實這也是最好的選擇哈,去了美國讀書的歐陽娜娜,也是不時的更新自己的微博,和粉絲們互動,並且還時常的曬出自己的私服穿搭,網友開玩笑說,這讀書都讀成時裝秀了,一天一套曬個不停。

說到穿搭,娜娜姐姐的衣品還真是挺不錯的呢,18歲的年齡就能駕馭起各種風格的穿搭,講真的,以前我在這個年齡時,還真的不會這麼會搭,穿得還是校服呢?小姐姐的時尚感很強,對也搭配把握的度掌握的很好,確實是一位元氣滿滿的美少女。

黑白條紋的連衣裙,一字肩的設計,內搭一件白色小背心,穿出了情竇初開的感覺,也不會給人太過艷俗感,反而看起來很清純,秀氣的感覺。而且這雙黑色的馬丁靴,應該也是小姐姐最喜歡的一種款式的鞋子了,經常能看見歐陽娜娜用她也搭配各種服裝。

都說讀書要專心,但是看完歐陽娜娜的各種晒圖后,好像完全就是在玩哈,不見得她晒成績反而天天曬起了時尚穿搭。這是怎麼回事呢?不過小姐姐的每次更博,都會引來一大波粉絲的互動。原因很簡單,是小姐姐的時尚穿搭吸引住了大家。

前不久,歐陽娜娜曬出了一張穿搭誇張的照片,這衣服是不是也穿的太多了,都密集到快數不過來了,難道美國真的有那麼冷嗎?

 

既然晒圖已經成了歐陽娜娜每天必須做的事情,那麼我們就一起來了解下,look下娜娜姐的衣品到底如何吧,這兩套都是佩戴了帽子的穿搭,真的很有休閑感,從衣服顏色的搭配和鞋子的選擇,都是那種青春期中,小女生們最愛的個性穿搭。

對於愛美的小姐姐們來說,衣服和褲子都是不嫌多的,關鍵是穿起來好看才是關鍵呢,當然,如果你也喜歡顯歐陽娜娜這種寬鬆一點的隨意感穿搭,那麼這兩套都很不錯哦,不論是灰色的T恤還是波浪點的襯衫,搭配一件迷彩褲或者是俏皮可愛的背帶褲,沒一件都是很經典的時尚單品,幫你輕鬆打造秋冬easy chic!

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

【其他文章推薦】

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

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

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

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

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

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

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

從裙子長度看時尚新視力

從裙子長度看時尚新視力

時尚在每一個人看來,可能表達方式都是有點不一樣的,都是要考慮一下自己的選擇是正確的還是錯誤的,或者說自己所認為的一種時尚來說的話與別人認為的時尚是不是相同的。就比如說現在的話呢,就是有一些人認為時尚本身就是可以從女孩子穿的裙子的長度來看的。其實對於女孩子來說的話呢,在90年代的時候穿裙子都會感覺到好像是有點害羞的,但是在現在來說的話呢,這些裙子如果穿的太長了的時候,反倒是會感覺到害羞了。其實現在這些女孩子們穿裙子的時候穿的越短,可能看的越性感越時尚了,這個就是一種轉變。

而且在現在就是可以看得出來女孩子們在穿裙子的時候的話呢,不單單是穿的短了,而且呢,在這個款式上面也是變得更加多變了。那麼在這種多變的款式之下的話,那就可以考慮到人們所了解到的時尚都是有點不一樣,能夠去真正看到了這些選擇的時候的話,也會變得更加容易能夠去接受。實際上也就是從現如今這些做法之後,我的話也就行了。基本上就是說明對於現在時尚本身來說的話,那這些人就在自己的裙子的款式上面就是有一些新的感覺,改變了,也就是想着能夠取得這變得更加的喜歡就行。

那麼也就是可以考慮一下,對於現在這些個設計師的話呢,就是慢慢的開始懂得這些女孩子們的心思了。而且在時間長了之後的話,就是會發現這些設計師的話,那不單單是懂女孩子們的,而且也是懂女孩子想要男孩子們看到東西的。特別是在夏天的時候,也就是時尚本身變得更加的,讓人們會看的上的時候呢,能夠在這做到這一點的時候的話,就會成為這些人里做選擇了,也就是變得更加輕鬆,自然就是可以看的出來這些事情的重要性,或者是說能夠選擇走的是上本身的好處。隨着時代進步,時尚也是在轉變的。

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

【其他文章推薦】

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

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

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

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

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

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

硬糖怎麼做

文章導讀

在生活中糖果一直以來是非常受到歡迎的一種零食,而隨着現實社會的生活水平不斷的發展,糖果的做法也是層出不窮,而硬糖也是屬於一種比較常見的,自己在家也可以製作,而且自己做的硬糖不僅口感好,而且十分衛生,首先需要準備好湯和黃油,將糖熬化後放入黃油定型即可。

硬糖怎麼做?

硬糖是經高溫熬煮而成的糖果。干固物含量很高,約在97%以上。糖體堅硬而脆,故稱為硬糖。屬於無定形非晶體結構。比重在1.4~1.5之間,還原糖含量範圍10~18%。入口溶化慢,耐咀嚼,糖體有透明的、半透明的和不透明的,也有拉製成絲光狀的。

類別

硬糖的類別有水果味型、奶油味型、清涼味型以及控白、拌砂和烤花硬糖等。對於水果味型硬糖要求是要與該種水果的色、香、味、形相同。

組成

糖類

它包括雙單糖,高糖和糊精等碳水化合物。各類糖在硬糖中的成分構成如下:

蔗糖80~50% 還原性糖10~20% 糊精高糖10~30%

調味料

硬糖中所用的調味材料包括兩部分:一是水果味型的硬糖,它們所用的調味材料有香料、香精和有機酸。最理想的是天然香料,不但香味醇和,而且無毒無害。合成香精是由酯類、醛類、酮類、醇類、酸類、烯萜類等各種芳香化合物調製而成。香氣強烈,添加過量有礙食品衛生,添加量不得超過食品衛生標準的限量。檸檬酸是糖果中調味的主要有機酸。此外,也可以用酒石酸,乳酸或蘋果酸。調味材料在形成硬糖的風味上起着重要作用。硬糖的另一種調味材料是用天然食品。如奶製品、可可製品、茶恭弘=叶 恭弘、麥乳精和果仁等。添加后不但改善了硬糖的風味,而且改變了硬糖的結構和狀態,使硬糖別具風格。

自製硬糖的做法步驟

把材料放在鍋里加熱。加熱到180-190度之間。如需色素可以加色素,一滴就差不多了

然後準備好錫箔,在表面塗上黃油,否則等糖涼了,取不下來。

把加熱好的糖倒進準備好的容器,晾乾一個小時就變硬了。

榔頭用錫箔包好,把變硬的糖敲碎就好了。

敲碎的糖放在餅乾里就能做出鏡面的效果了。

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

【其他文章推薦】

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

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

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

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

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

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

夏日無袖旗袍,讓你的美肆意飛揚!

夏日無袖旗袍,讓你的美肆意飛揚!

夏天的旗袍,大家都喜歡比較清新的款式,清新小旗袍穿在窈窕女子身上,帶給人精緻、優雅、嫵媚、玲瓏的時尚姿態,而且旗袍美女穿上這樣的小旗袍,自然心裏面歡喜,所以,旗袍美女也就自帶着一種活潑開朗的姿態,影響着周圍的人,帶給人肆意爛漫的感覺!

 

 

小清新旗袍,不一定是顏色比較清新,雖然這款旗袍是利用了素雅的色澤,而且就連它的花色也不是怎麼妖冶,小巧精緻的棉質旗袍,肆意爛漫的點染着卡其色的花型,看似雜亂無章的花色,實則有着內置的規律性,所以遠遠看去,這旗袍上的花色都是豎條排列,雖然互不相連,卻又遙相呼應,大有心有靈犀一點通的妙趣,給這穿旗袍的女子裝飾着滿滿的靈氣!

 

 

短款清新的旗袍設計,緊緊的包括在旗袍美女身上,復古、典雅、優雅、矜貴,完美的曲線包裹人女子嬌小的身材,勾勒着女子裊娜娉婷的身姿,那寫意畫似的花型,爛漫多情的韻味兒,叫人不由得迷醉!

肆意浪漫的精緻旗袍,妥帖的包裹在東方女子身上,無袖滾邊的旗袍設計,讓這穿旗袍的女子更加具有肆意浪漫的美,再用細跟高跟鞋來搭配這件旗袍,女子顯得更加青春、幹練,滿是高貴的御姐范兒!無袖的設計、短款的旗袍裙擺、小小的開叉、玲瓏可愛的盤扣,讓旗袍女子,美得肆意飛揚!

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

【其他文章推薦】

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

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

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

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

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

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

楊冪真不愧是時尚女王

楊冪真不愧是時尚女王

楊冪在時尚方面的能力大家都是有目共睹的,身材高挑且窈窕的她,簡約穿搭就很有范兒,每次的時尚造型都很有個人特色,從她的穿衣搭配中總能看到今年的流行元素的存在,完全就是個行走的衣服架子。除了穿的好看就算了,她的種草能力也是一級棒的,時尚穿搭總讓網友想get同款,輕鬆就成了大家口中的“帶貨女王”,帶貨能力也是得到了大家的一致認可的,所以很多的時尚品牌都會找她做品牌代言人,可以很好的給大家種草,時尚功力真的十分了得!

楊冪不愧是時尚女王,一頭浪漫微捲髮型的她,還化了個精緻的妝容,顯得氣質迷人,整個人的五官都顯得更加立體了,精緻又好看。她這次穿了條粉色連衣裙,清新又甜美!

楊冪身穿一頭粉色連衣裙,粉粉的色調,顯得清新時尚,給人很小清新的感覺,粉色連衣裙穿出少女感,加上她又抱着一個粉色的抱枕,枕着抱枕閉眼的模樣很像睡美人的感覺,簡直不要太美!

 

楊冪的這條粉色連衣裙還是挖肩的設計,甜美中又帶點小性感,讓她看起來更顯小女人了,她還搭了雙白色一字高跟鞋,襯得j雙腿又細又長,完全就是腿精一枚,盡顯高挑且窈窕身材,哪像是做媽的人啊!

 

 

楊冪穿了件粉色條紋T恤,盡顯清新少女氣息,這是比較小清新的穿搭,下半身則穿了條藍色條紋半身裙,都是條紋系列的穿搭,顯瘦又好看,她還搭了雙銀色的高跟鞋,襯得雙腿又細又長,還很顯高挑,真好看!

 

 

楊冪身着一條黃色連衣裙,顯得清新少女,還有點度假風的感覺,她這條裙子外邊還加多了層白色蕾絲,盡顯優雅時尚氣息,裙子還做了收腰的設計,勾勒出她那迷人的小蠻腰,盡顯窈窕身材,十分不錯!

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

【其他文章推薦】

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

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

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

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

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

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