android程序開發中經常用到多線程,本篇記錄多線程的創建及多線程同步
一、開發中的問題記錄
二、學習時編寫的代碼
部分代碼:
pthread_mutex_t mutex1;//創建線程鎖
void *threadStart2(void *id) {
pthread_mutex_lock(&mutex1);//獲取鎖
for (int i = 0; i < 300; i++) {
int temp = total;
usleep(1);//休眠1毫秒
temp++;
total=temp;
}
pthread_mutex_unlock(&mutex1);//釋放鎖
LOGI("--線程持運行結束--結果:%d", total);
//線程結束
pthread_exit(NULL);
}
void Java_com_xcc_app4_MyJniThread2_startThread2(JNIEnv * env, jclass
jc){
total = 0;
pthread_t threads;
int id=1;
/**
* 初始化線程鎖mutex1,
* 但實驗發現,即使不初始化也能正常使用mutex1
*/
pthread_mutex_init(&mutex1,NULL);
for(int i = 0;i < 3;i++){
int rc = pthread_create(&threads, NULL, threadStart2, (void *)i);
if(rc){
LOGI("--創建線程%d失敗--", i);
}else{
LOGI("--創建線程%d成功--", i);
}}
/**
* 釋放鎖,
* 實驗發現,即使不釋放也能正常使用。
* 此處不能銷燬鎖,否則線程將無法獲得到鎖
*/
//pthread_mutex_destroy(&mutex1);
}
碼雲:http://git.oschina.net/rookieci/NDKStudy
github:https://github.com/cookieci/NDKStudy