1
dispatch_queue_t q =dispatch_queue_create("thread-one",dispatch_queue_serial) ;
dispatch_async(q, ^);
// 獲取 名字的方法
// nslog(@"%s", dispatch_queue_get_label(dispatch_current_queue_label));
2
nsthread *thread = [[nsthread alloc]initwithtarget:self selector:@selector(display) object:nil];
thread.name = @"thread-three";
[thread start];
swfit
1
let queue1 = dispatchqueue(label: "thread-one")
queue1.async
2
let thread1 =
thread(target: self, selector: #selector(viewcontroller.display), object: nil)
thread1.name =
"thread1"
thread1.start()
nslock使用
let thread1 =
thread(target: self, selector: #selector(viewcontroller.display), object: nil)
thread1.name =
"thread1"
thread1.start()
let thread2 =
thread(target: self, selector: #selector(viewcontroller.display), object: nil)
thread2.name =
"thread2"
thread2.start()
let thread3 =
thread(target: self, selector: #selector(viewcontroller.display), object: nil)
thread3.name =
"thread3"
thread3.start()
func display()
輸出
thread2--
thread3
thread2--
thread1
thread2--
thread2
混亂了,修改display方法 注釋開啟 輸出
thread3--
thread3
thread1--
thread1
thread2--
thread2
正常了
func display()
func log()
如果 lock 的內容 有非同步執行的 會等非同步執行完 再解鎖 上面 一共過了 15s 才解鎖 iOS執行緒鎖NSLock案例 賣火車票
import rootviewcontroller.h inte ce rootviewcontroller 宣告總票數 property nonatomic assign nsinteger totaltickets 宣告剩餘票數 property nonatomic assign nsinteg...
IOS開發之NSLock 的使用
在下面的例子中 使用 nslock 使得 執行緒a,b,c,依次執行 若不使用nslock 則執行緒的執行是無序的 nslock的執行原理 某個執行緒a呼叫lock方法。這樣,nslock將被上鎖。可以執行 關鍵部分 完成後,呼叫unlock方法。nslock lock nslock alloc i...
iOS 多執行緒 同步和非同步 序列和並行
ios中我們常使用dispatch queue和nsoperationqueue來實現多執行緒。而序列和並行 同步和非同步,這四個詞同時出現的地方是dispatch queue。nsoperationqueue貼心的隱藏了這些東西,已經不需要我們來操心了。所以下面會使用dispatch queue來...