iOS多線程:pthread

1、多線程的原理

在同一時間內,(單核)CPU只能處理1條線程,只有1條線程在工作(執行)。因此,多線程併發(同時)執行,其實是CPU快速地在多條線程之間調度(切換)。如果CPU調度線程的時間足夠快,就造成了多線程併發執行的假象。

思考:如果線程非常非常多,會發生什麼情況?

1、CPU會在N多線程之間調度,CPU會累死,消耗大量的CPU資源

2、每條線程被調度執行的頻次會降低(線程的執行效率降低)

 

2、多線程的優缺點

多線程的優點

1、能適當提高程序的執行效率

2、能適當提高資源利用率(CPU、內存利用率)

 

多線程的缺點

1、開啓線程需要佔用一定的內存空間(默認情況下,主線程佔用1M,子線程佔用512KB),如果開啓大量的線程,會佔用大量的內存,降低程序的性能

2、線程越多,CPU在調度線程上的開銷就越大

3、程序設計會更加複雜(比如線程之間的通信、多線程的數據共享)

 

3、iOS的多線程的方案

1、Pthreads

2、NSThread

3、GCD

3、NSOperation & NSOperationQueue

 

pthread

pthread是一套通用的多線程的API,可以在Unix / Linux / Windows 等系統跨平臺使用,使用C語言編寫,需要程序員自己管理線程的生命週期,使用難度較大。

- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {

    pthread_t thread;

    //創建一個線程並自動執行

    pthread_create(&thread, NULL, start, NULL);

}

void *start(void *data) {

    return NULL;

}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章