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