当前位置: 技术问答>linux和unix
POSIX线程数据共享
来源: 互联网 发布时间:2016-04-28
本文导语: 我有一个全局的map 程序有两个子线程, 这两个子线程都会访问map, 但可以肯定他们都只是读map, 绝对不会写map 这样, 访问map时还须要互斥锁吗? 另外还有一个问题关于分离线程 pthread_attr_init(&attribute); pthread_attr_setdeta...
我有一个全局的map
程序有两个子线程, 这两个子线程都会访问map, 但可以肯定他们都只是读map, 绝对不会写map
这样, 访问map时还须要互斥锁吗?
另外还有一个问题关于分离线程
pthread_attr_init(&attribute);
pthread_attr_setdetachstate(&attribute, PTHREAD_CREATE_DETACHED);
pthread_create(&threadID, &arrtibute, Run, &argument);
这样创建的线程在Run运行完return以后, 线程栈会自动被destroy吗
程序有两个子线程, 这两个子线程都会访问map, 但可以肯定他们都只是读map, 绝对不会写map
这样, 访问map时还须要互斥锁吗?
另外还有一个问题关于分离线程
pthread_attr_init(&attribute);
pthread_attr_setdetachstate(&attribute, PTHREAD_CREATE_DETACHED);
pthread_create(&threadID, &arrtibute, Run, &argument);
这样创建的线程在Run运行完return以后, 线程栈会自动被destroy吗
|
为什么要加互斥锁呢?是为了防止出现数据不一致的情况,只读会不会导致数据不一致的情况出现呢?不会,所以不需要加锁.
线程如果调置了detach属性,所占资源就会在退出后自动destroy的
线程如果调置了detach属性,所占资源就会在退出后自动destroy的