欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

iOS多線程介紹

 更新時間:2016年05月15日 15:43:27   作者:湖南金剛  
這篇文章主要介紹了iOS多線程的相關(guān)知識,涉及到對進(jìn)程,線程等方面的知識講解,本文非常具有參考價(jià)值,感興趣的朋友一起學(xué)習(xí)吧

一、前言部分

最近在面試,重新溫習(xí)了一遍多線程,希望加深一遍對于多線程的理解。

1、什么是進(jìn)程?

1).要了解線程我們必須先了解進(jìn)程,通俗來講進(jìn)程就是在系統(tǒng)中運(yùn)行的一個應(yīng)用程序。

2).每個線程之間是獨(dú)立存在的,分別運(yùn)行在其專用的且受保護(hù)的內(nèi)存空間中。

3).比如打開QQ或Xcode系統(tǒng)會分別開啟兩個進(jìn)程 如圖:

4)、我們可以通過"活動監(jiān)視器"查看Mac系統(tǒng)中所開啟的進(jìn)程。

2、什么是線程?

1).一個進(jìn)程要想執(zhí)行任務(wù)必須得有線程,即一個進(jìn)程至少要有一個線程。

2).線程是進(jìn)程的基本執(zhí)行單元,一個進(jìn)程(程序)的所有任務(wù)都是在線程中執(zhí)行的。

3).比如使用酷狗播放音樂、使用迅雷下載電影都需要在線程中運(yùn)行 如圖:

3、什么是線程的串行?

1).一個線程中任務(wù)是串行執(zhí)行的(順序執(zhí)行)的,也就是說一個線程同一時間內(nèi)只能執(zhí)行一個任務(wù)。

2).串行執(zhí)行圖解,比如一個線程下載3個文件(文件A、B、C)

4、什么是多線程?

1).一個進(jìn)程中可以開啟多個線程,每個線程可以并發(fā)(同時)執(zhí)行不同的任務(wù)。

2).類似關(guān)系列舉:進(jìn)程---->車間;線程---->車間工人

3).多線程圖解,比如同時開啟3個線程分別下載3個文件(文件A、B、C)

5、多線程原理

1).同一時間CPU只能執(zhí)行一個線程,只有一個線程在工作(執(zhí)行)。

2).多線程并發(fā)(同時)執(zhí)行,其實(shí)是CPU快速的在多個線程之間調(diào)度(切換)。

3).如果CPU調(diào)度線程的速度夠快,就會造成多線程并發(fā)執(zhí)行的假象。

4).多線程的缺點(diǎn):

1、每個線程都會占用一定的內(nèi)存空間(默認(rèn)情況下:主線程占用1MB,子線程占用512KB),

如果開啟線程過多會占用大量的內(nèi)存空間因而造成程序性能降低。

2、線程越多CPU調(diào)度線程上的開銷就越大(類似工廠工人越多,工廠開銷也越大)。

3、使程序設(shè)計(jì)更復(fù)雜:比如多線程的數(shù)據(jù)通信,多線程之間的數(shù)據(jù)共享。

5).多線程的優(yōu)點(diǎn):

1、能適當(dāng)提高程序的執(zhí)行效率。

2、能適當(dāng)提高資源利用率(CPU、內(nèi)存的利用率)

6、什么是主線程?

1).一個iOS程序開啟后默認(rèn)會開啟一個線程,這個線程被稱為"主線程"或"UI線程"。

2).主線程的主要作用:

1、顯示/刷新UI界面

2、處理UI事件(比如點(diǎn)擊事件、滾動事件、拖拽事件等)

3).主線程注意點(diǎn):

1、別將耗時的操作放在主線程中,耗時操作放在主線程中會造成程序卡頓的問題。

7、耗時操作Demo演示

1)、直接在主線程中運(yùn)行的Demo

-(void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event{
//獲取當(dāng)前執(zhí)行方法和當(dāng)前線程
//number== 主線程
//number!= 其他線程、子線程、次線程
NSLog(@"%s----%@",__func__,[NSThread currentThread]);
//直接在主線程中運(yùn)行 造成UI操作卡頓
[self longTimeOperation];
}
#pragma mark-耗時操作
-(void)longTimeOperation{
for (int i=; i<; i++) {
NSLog(@"%d",i);
}
}

2)、在子線程中運(yùn)行的Demo

-(void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event{
//獲取當(dāng)前執(zhí)行方法和當(dāng)前線程
//number== 主線程
//number!= 其他線程、子線程、次線程
NSLog(@"%s----%@",__func__,[NSThread currentThread]);
//將耗時操作放在子線程中執(zhí)行,不影響UI的操作
[self performSelectorInBackground:@selector(longTimeOperation) withObject:nil];
}
#pragma mark-耗時操作
-(void)longTimeOperation{
for (int i=; i<; i++) {
NSLog(@"%d",i);
}
}

以上內(nèi)容是小編給大家介紹的ios多線程知識,希望對大家有所幫助!

相關(guān)文章

  • mybatis如何批量修改數(shù)據(jù)

    mybatis如何批量修改數(shù)據(jù)

    這篇文章主要介紹了mybatis如何批量修改數(shù)據(jù)方式,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-03-03
  • Java List移除相應(yīng)元素的超簡潔寫法分享

    Java List移除相應(yīng)元素的超簡潔寫法分享

    這篇文章主要介紹了Java List移除相應(yīng)元素的超簡潔寫法,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-11-11
  • SpringBoot如何通過Feign調(diào)用傳遞Header中參數(shù)

    SpringBoot如何通過Feign調(diào)用傳遞Header中參數(shù)

    這篇文章主要介紹了SpringBoot通過Feign調(diào)用傳遞Header中參數(shù),本文給大家分享兩種解決方案給大家詳細(xì)講解,需要的朋友可以參考下
    2023-04-04
  • 基于Java解決華為機(jī)試之字符串加解密?

    基于Java解決華為機(jī)試之字符串加解密?

    這篇文章主要介紹了基于Java解決華為機(jī)試之字符串加解密,問題描述展開主題即詳細(xì)代碼的分享完成文章內(nèi)容,具有一的的參考價(jià)值,需要的小伙伴可以參考一下。希望對你有所幫助
    2022-02-02
  • Java字符串逆序方法詳情

    Java字符串逆序方法詳情

    這篇文章主要介紹了Java字符逆序,字符逆序主要原理就是將一個字符串str的內(nèi)容顛倒過來,并輸出,下文操作分享需要的小伙伴可以參考一下
    2022-03-03
  • java?ArrayList的深拷貝與淺拷貝問題

    java?ArrayList的深拷貝與淺拷貝問題

    這篇文章主要介紹了java?ArrayList的深拷貝與淺拷貝問題,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-05-05
  • Mybatis的@select和@SelectProvider注解方式動態(tài)SQL語句解讀

    Mybatis的@select和@SelectProvider注解方式動態(tài)SQL語句解讀

    這篇文章主要介紹了Mybatis的@select和@SelectProvider注解方式動態(tài)SQL語句,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-12-12
  • 解決feignclient調(diào)用服務(wù),傳遞的中文數(shù)據(jù)成???問題

    解決feignclient調(diào)用服務(wù),傳遞的中文數(shù)據(jù)成???問題

    這篇文章主要介紹了解決feignclient調(diào)用服務(wù),傳遞的中文數(shù)據(jù)成???問題,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-01-01
  • javaweb配置jsp路徑映射操作

    javaweb配置jsp路徑映射操作

    這篇文章主要介紹了javaweb配置jsp路徑映射操作,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-08-08
  • 淺談SpringBoot Bean加載優(yōu)先級的問題

    淺談SpringBoot Bean加載優(yōu)先級的問題

    這篇文章主要介紹了淺談SpringBoot Bean加載優(yōu)先級的問題,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-11-11

最新評論