当前位置: 首页 > news >正文

北京品牌网站建设公司哪家好做贷款网站

北京品牌网站建设公司哪家好,做贷款网站,网站开发与维护招聘,免费推广软件排行榜总所周知#xff0c;在linux中pthread_mutex_t可以用于同一进程内多个线程之间的同步。我们所需要做的工作#xff0c;仅仅是定义一个全局的pthread_mutex_t类型变量即可。但是对于进程之间的互斥#xff0c;就没有那么简单了。我们必须将pthread_mutex_t类型变量放到各个进…总所周知在linux中pthread_mutex_t可以用于同一进程内多个线程之间的同步。我们所需要做的工作仅仅是定义一个全局的pthread_mutex_t类型变量即可。但是对于进程之间的互斥就没有那么简单了。我们必须将pthread_mutex_t类型变量放到各个进程都能够访问得到的共享内存中。对于进程之间的互斥有如下实例/*author:song0071000#126.comfunction:mutual exclusion of processtime:2014-04-15*/#include #include #include #include #include #include #include int main(int argc,char* argv[]){int fd;char dir[]/simple.shm;pthread_mutex_t* lock;pthread_mutexattr_t mutexAttr;fd shm_open(dir,O_RDWR,0777);/*这里先检查是否能够成功打开共享内存对象。若该对象不存在那么则将fd置为-1*//*not create yet*/if(fd -1){printf(Shared memory open failed!\n,dir);close(fd);fd shm_open(dir,O_CREAT|O_TRUNC|O_RDWR,0777);/*共享内存对象不存在那么这里便创建该对象*/if( -1 fd ){printf(Shared memory create failed\n);return -1;}if(ftruncate(fd,sizeof(pthread_mutex_t)))/*修改该共享内存的大小*/{printf(Shared ftruncate failed\n);return -1;}lock mmap(NULL,sizeof(pthread_mutex_t),PROT_READ|PROT_WRITE,MAP_SHARED,fd,0);/*进行内存映射lock为共享内存对象的起始地址*/if(lock MAP_FAILED){printf(Shared MAP_FAILED\n);}close(fd);pthread_mutexattr_init(mutexAttr);/*初始化互斥锁的属性*/pthread_mutexattr_setpshared(mutexAttr,PTHREAD_PROCESS_SHARED);/*设置互斥锁的属性*/pthread_mutex_init(lock,mutexAttr);/*互斥锁的初始化*/}else{lock mmap(NULL,sizeof(pthread_mutex_t),PROT_READ|PROT_WRITE,MAP_SHARED,fd,0);/*若该共享内存对象已然存在那么进行内存映射lock指向共享内存对象的起始地址*/close(fd);}printf(Shared memory open sucess in process 1!\n,dir);int syslog_fd;int i0;while(i5){pthread_mutex_lock(lock);/*加锁*//*create sys.log*/syslog_fd open(sys.log,O_CREAT|O_EXCL,0777);/*-----这里可以进行你自己要互斥的操作------*/if(-1 syslog_fd){printf(You never see this!\n);pthread_mutex_unlock(lock);return -1;}printf(open one time in process 1!.\n);sleep(1);remove(sys.log);pthread_mutex_unlock(lock);/*解锁*/sleep(2);i;}return 0;}这里面需要注意的几点是1.这里面将共享内存对象的打开或创建写在一段代码里面了。这里得处理好pthread_mutex_t以及pthread_mutexaddr_t的初始化以及设置。它们都只能够被设置或初始化一次也就是创建共享内存对象的时候。2.posix共享内存对象路径名需使用/开头但不能用/结尾3.嵌入式应用中可能无法使用共享内存。打印的错误代码为2提示no such file or directory.项目中需要使用共享内存对象但是却死活创建不成功。折腾了很久终于找到解决方法了。可能是因为/dev/shm没有挂载。需在/etc/fstat里面加上none /dev/shm tmpfs defaults 0 0这样一行。并且在启动脚本中加入挂载语句/bin/mkdir /dev/shm/bin/mount /dev/shm在posix共享内存对象创建之后可以在/dev/shm中看到posix以路径名命名的共享内存对象。程序在执行过程中会用到/dev/shm这个目录。之前共享内存对象不能使用时/dev/shm正好没有挂载也许这就是为什么提示 no such file or directory的原因了吧。具体可以用strace命令来查看。这里有个使用strace查看跟踪程序运行过程的文章http://blog.163.com/ecy_fu/blog/static/44451262009622115339154/关于共享内存对象的使用请查看unp 第二卷。本人享有博客文章的版权转载请标明出处http://blog.csdn.net/baidu20008
http://www.yutouwan.com/news/492893/

相关文章:

  • 深圳最近消息搜素引擎排名优化
  • 惠州网站建设模板合作阿里巴巴司法拍卖网官网
  • 网站设计最新风格如何弄微信小程序店铺
  • 怎么把网站排名排上去google网站优化工具
  • 建网页放到什么网站上网站怎么做微信接口
  • shtml怎么做网站招商网站建设大概多少钱
  • 做淘客网站怎么样是不是该填写完整
  • 网络注册公司怎么注册东莞百度搜索优化
  • 大连教育培训网站建设河北省邢台市seo
  • 怎么搭建一个视频网站vi手册免费模板
  • 温州网站开发流程最简单的网站模板下载
  • 网络推广建立站点如何建立网页设计网站建设专业现状
  • asp连接数据库做登录网站完整下载福州seo排名优化
  • 宣传型网站有哪些360浏览器怎么创建网页
  • 金坛市住房和城乡建设局 网站凡科互动游戏怎么修改程序
  • 网上做兼职的网站免费建设网站平台
  • 广州做网站哪个平台好遵义做手机网站建设
  • 做网站开发学什么语言好wordpress 等待响应
  • 阿里巴巴网站怎么做全屏分类淄博网站建设费用
  • 加盟网官方网站域名查询ip解析
  • 建站公司上海有什么平台可以销售产品
  • 如何选择网站模板购买seo关键词排名优化官网
  • 网站首页改版方案湖南长沙房价2023年最新房价
  • 优秀网站网址江西网站设计哪家强
  • 北京市优化网站wordpress安装程序
  • 上杭县城乡规划建设局网站河北招投标信息服务平台
  • 网站开发的硬件环境要求南昌网站seo外包
  • 网站界面设计分析网站如何做企业电子宣传册
  • 怎么做定位钓鱼网站建设银行手机银行app类型
  • 网站搭建服务器需要什么小程序如何注册步骤