Serial | sync嵌套會死鎖, 外部的sync block會等待內部的sync block完成才結束, 但內部的永遠執行不到 |
GCD_TEST[45149:303] HELLO | |
GCD_TEST[45149:1a03] async: |
|
- | |
Concurrent | 怎麼嵌套都不會死鎖, 因為block沒有順序依賴關係 |
GCD_TEST[45167:303] HELLO | |
GCD_TEST[45167:303] sync: |
|
GCD_TEST[45167:1503] async: |
|
GCD_TEST[45167:1503] sync-async: |
|
GCD_TEST[45167:1a03] async-async: |
|
GCD_TEST[45167:303] sync-sync: |
|
GCD_TEST[45167:1503] sync-async: |
|
- | |
Main | async 和 sync 相同, 都在主線程, 怎麼嵌套都會死鎖, 只用sync也無法執行, 因為main queue一直有任務在執行 |
GCD_TEST[45083:303] HELLO | |
- | |
Global | 系統共用的queue, 效果同Concurrent |
GCD_TEST[45187:303] HELLO | |
GCD_TEST[45187:303] sync: |
|
GCD_TEST[45187:1a03] async: |
|
GCD_TEST[45187:1a03] sync-async: |
|
GCD_TEST[45187:1f03] async-async: |
|
GCD_TEST[45187:303] sync-sync: |
|
GCD_TEST[45187:1a03] sync-async: |
FYTSAI
FYTSAI, Fengyi Tsai
2014年11月19日 星期三
Objective-C 多線程: Grand Central Dispatch(GCD)
2014年8月19日 星期二
javascript function.call()
var a = function(a,b,c){
console.log(this.a);
console.log(this.b);
console.log(this.c);
console.log(a);
console.log(b);
console.log(c);
}
var b = {
a:123,
b:456,
c:789
}
a.call(b,1,2,3)
// output:
// 123
// 456
// 789
// 1
// 2
// 3
a.apply(b,[1,2,3])
// output:
// 123
// 456
// 789
// 1
// 2
// 3
2014年6月13日 星期五
Android 模擬按鍵點擊
Reference:
http://developer.android.com/reference/android/app/Instrumentation.html
Code:
KeyEvent Key Code Mapping:
http://developer.android.com/reference/android/view/KeyEvent.html
http://developer.android.com/reference/android/app/Instrumentation.html
Code:
Instrumentation.sendKeyDownUpSync(key_code);
KeyEvent Key Code Mapping:
http://developer.android.com/reference/android/view/KeyEvent.html
2014年5月3日 星期六
HTML5的觸控事件
2013年11月3日 星期日
2013年10月12日 星期六
2013年4月14日 星期日
Android 用 adb shell啟動 Activity
在app中intent 可以透過Action或是Activity Name來啟動新的Activity
用adb shell 也同樣可以做到
1. 用Action啟動 activity
adb shell am start -a android.intent.action.MAIN
可以再加上category
adb shell am start -a android.intent.action.MAIN -c android.intent.category.HOME
2. 用activity name 啟動 activity
注意前面要加上package name
格式:am start -n package name / activity name )
am start -n com.demo.browser/com.demo.browser.BrowserActivity
用adb shell 也同樣可以做到
1. 用Action啟動 activity
adb shell am start -a android.intent.action.MAIN
可以再加上category
adb shell am start -a android.intent.action.MAIN -c android.intent.category.HOME
2. 用activity name 啟動 activity
注意前面要加上package name
格式:am start -n package name / activity name )
am start -n com.demo.browser/com.demo.browser.BrowserActivity
訂閱:
文章 (Atom)