易截截图软件、单文件、免安装、纯绿色、仅160KB

linux下临界区和互斥锁的关系

windows下说有临界区和互斥锁两个概念,但实现的同样的功能
linux下的临界区我理解的是:通过设置线程的不可取消的属性来实现的,一旦进入临界区,在离开临界区之前它将无法取消,这个属性能当做一种“互斥锁机制”用吗,
account_balance[to_acct] +=dollars;
account_balance[from_act] -= dollars;
在两个线程中对account_balance[]操作,
是不是同时还要加互斥锁
pthread_mutex_lock(.....)
pthread_setcancelstate(PTHREAD_CANCEL_DISABLE,&old_cancel_state);
account_balance[to_acct] +=dollars;
account_balance[from_act] -= dollars;
pthread_setcancelstate(old_cancel_state,NULL);
pthread_mutex_unlock(.....);
望指教

引用
windows下说有临界区和互斥锁两个概念,但实现的同样的功能
linux下的临界区我理解的是:通过设置线程的不可取消的属性来实现的,一旦进入临界区,在离开临界区之前它将无法取消,这个属性能当做一种“互斥锁机制”用吗,
account_balance[to_acct] +=dollars;
account_balance[from_act] -= dollars;
在两个线程中对account_balance[]操作,
是不是同时还要加互斥锁
pthread_mutex_lock(.....)
pthread_setcancelstate(PTHREAD_CANCEL_DISABLE,&old_cancel_state);
account_balance[to_acct] +=dollars;
account_balance[from_act] -= dollars;
pthread_setcancelstate(old_cancel_state,NULL);
pthread_mutex_unlock(.....);
望指教


线程的cancel属性不能用来代替互斥锁的作用的,


相关问答:

linux下C语言开发oracle的问题。

两个文件1.PC,1.inc
1.PC有操作oracle数据库的 ,1.inc也有操作oracle数据库 
在其他数据中如informix 中$include 1.inc就可以使用了
在ORACLE数据库重 $include 1.inc不可用 EXEC SQL include 1.inc也不可 ......

是选win2008还是suse linux、redhat、centos,犹豫中

引用内容vsking 2009-12-25 22:56:52
现在是win2008和iis8的时代了,不要还停留在iis5时代,win2008被评为十佳操作系统之首不是偶然的,你要是..
我的问题是:
最近想买个服务器,看了dell上的系统定制选择,一些 ......

linux 下usb设备驱动问题

linux 下usb设备,在root权限下,设备可以正常找到驱动,
但在普通用户下找不到设备驱动,不知道是什么原因?请高手指教
应该是root为了防止普通用户破坏吧,所以加个权限。。。我的就是

权限问题 root是超级用 ......

Windows环境下java连接Linux环境Oracle数据库出错

请教为什么本机Windows环境下java连接Linux环境下Oracle数据库出错?(注:一下代码连接本机Oracle数据库正常,驱动包为ojdbc14.jar)
以下为java连接Oracle数据库代码,在连接本机Oracle数据库正常
Connection co ......

Linux中子父进程 - Linux/Unix社区 / 程序开发区

在Linux中,
如果父进程调用exit(0)退出,
那么由该进程创建的两个子进程会立即退出吗???
希望围绕该问题说清楚点,谢谢了。
不会
两个子进程脱离了父进程,独立运行
父进程死掉后,其所有子孙进程被init收 ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号