运行结果 从上面可以看到: 【1】 如果主线程和子线程是并行的,虽然都是用while(1)但是倚靠 CPU的调度,主线程和子线程都有机会得到执行。 【2】 如果要在子线程里面改变主线程里面的数据,就在 pthread_create 里面的最后 一个参数使用传地址调用(void *)&c,否则使用传值调用(void *)c 【3】使用pthread_join的目的在于:怕主线程执行的过快,子线程还没有执行 主线程就执行完毕并且退出了。 使用detach属性的目的在于,使得主线程和子线程之间割断联系,主线程退出 子线程也不会挂掉,子线程 退出,主线程也不用回收子线程的资源。 因为在本例子中,主线程和子线程都是无限循环执行的,即寿命无限长,主线程 和子线程也不用关心谁先得到执行,也不用关心资源的回收,所以调用pthread_create 的使用也就没有回收pthread_t tt这个用于管理子设备号的ID,也没用调用pthread_join来 等待子线程退出。
|