程序:正在執行的程式
執行緒:是對程序的細化,乙個程序包含一到多個執行緒
多執行緒大大提高了工作效率
多執行緒:concurrent (併發) 單執行緒:serid (序列)
執行緒同步:任務之間有依賴關係,乙個任務執行完後,另乙個任務才能執行.
執行緒互斥:可以用nslock(程序鎖)解決
ui介面重新整理需要在主線程裡面執行
建立執行緒:
1. - [nsobject performselectorinbackground:@selector(a) withobject:nil];
2. + [nsthread detachnewthreadselector:@selector(a:) totarget:self withobject:@"hello"];
3. nsthread *thread=[[nsthread alloc]initwithtarget:self selector:@selector(a:) object:@"hello"];
[thread start];
//三種方式得到佇列
是乙個serial queue. 在主線程中執行queue裡的任務,mainqueue是個單例.
dispatch_queue_t mainqueue=dispatch_get_main_queue();
是乙個concurrent queue. 在子執行緒中執行queue裡的任務,根據優先順序不同,有4個單例.
dispatch_queue_t globalqueuehigh=dispatch_get_global_queue(dispatch_queue_priority_high, 0);
dispatch_queue_t globalqueuedefault=dispatch_get_global_queue(dispatch_queue_priority_default, 0);
dispatch_queue_t globalqueuelow=dispatch_get_global_queue(dispatch_queue_priority_low, 0);
dispatch_queue_t globalqueuebackground=dispatch_get_global_queue(dispatch_queue_priority_background, 0);
//3.自定義序列,並行的queue
dispatch_queue_t customserialqueue=dispatch_queue_create("com.class.myserialqueue",dispatch_queue_serial);
dispatch_queue_t customconcurrentqueue=dispatch_queue_create("com.class.myserialqueue",dispatch_queue_concurrent);
//設定任務在哪個佇列執行
dispatch_async(mainqueue, ^);
dispatch_group_t group=dispatch_group_create();
//dispatch_after 延遲放入queue
nsarray *arr=[nsarray arraywithobjects:@"q",@"d",@"a", nil];
nslog(@"%@",[arr objectatindex:index]);
});//dispatch_group_async 組內執行任務
dispatch_group_async(group, globalqueuedefault, ^);
dispatch_group_async(group, globalqueuedefault, ^);
//最後執行
dispatch_group_notify(group, mainqueue, ^);
//在應用程式中,只執行一次,可用於定義單例.
static dispatch_once_t oncetoken;
dispatch_once(&oncetoken, ^);
iPhone開發之多執行緒使用
建立執行緒有三種方法 一 通過 nsthread detachnewthreadselector selector addaction totarget self withobject nil 建立,無具體的返回物件,執行緒不受使用者控制,控制權掌握在系統的手中 二 通過 nsthread allo...
學習日記之多執行緒
要學習執行緒,首先要理解三個概念。什麼是程式,什麼是程序,什麼是執行緒。程式,是指令的集合。程序是正在執行的程式,是靜態概念。執行緒,是程序中乙個 單一的連續控制流程 也稱為輕量級程序。執行緒有一下幾個點 1.乙個程序可以擁有多個執行緒 2.乙個程序中的執行緒個共享相同的記憶體單元,即擁有相同的變兩...
python之多執行緒(學習)
執行緒分為 核心執行緒 由作業系統核心建立和撤銷 使用者執行緒 不需要核心支援而在使用者程式中實現的執行緒python3 執行緒中常用的兩個模組 thread和threading 推薦使用 python中使用執行緒有兩種方式 函式或者用類來包裝執行緒物件函式式 呼叫模組 import thread ...