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

自己做服务器的网站吗xml网站地图每天更新

自己做服务器的网站吗,xml网站地图每天更新,网站ftp模板,wordpress adsense这一篇练习信号量的应用 信号量本质上是一个非负的整数计数器#xff0c;也是UNIX中古老的实现进程互斥和同步的手段#xff0c;Linux下信号量概念是在线程中#xff0c;信号则在进程控制中#xff0c;不过原理差不多#xff0c;最基本最经典的操作莫过于P、V操作了#… 这一篇练习信号量的应用 信号量本质上是一个非负的整数计数器也是UNIX中古老的实现进程互斥和同步的手段Linux下信号量概念是在线程中信号则在进程控制中不过原理差不多最基本最经典的操作莫过于P、V操作了能实现进程、线程的互斥和同步操作非常值得深入理解。 1.P、V操作原语 P操作 proceduce P(var s:semaphore) { begin s:s-1; if(s0)then W(s); end } V操作 proceduce V(var s:semaphore) { begin s:s1; if(s0)then R(s); end }  2.基本操作 数据类型信号量的数据类型为结构sem_t它本质上是一个长整型的数。 函数 1sem_init 功能         用于创建一个信号量并初始化信号量的值。 头文件       semaphore.h 函数原型     int sem_init (sem_t* sem, int pshared, unsigned int value); 函数传入值   sem:信号量。 pshared:决定信号量能否在几个进程间共享。由于目前LINUX还没有实现进 程间共享信息量所以这个值只能取0。 value初始计算器 函数返回值   0成功。 -1失败。 2其他函数。 //等待信号量 int sem_wait       (sem_t* sem); int sem_trywait   (sem_t* sem); //发送信号量 int sem_post       (sem_t* sem); //得到信号量值 int sem_getvalue (sem_t* sem); //删除信号量 int sem_destroy   (sem_t* sem); 功能sem_wait和sem_trywait相当于P操作它们都能将信号量的值减一两者的区别在 于若信号量的值小于零时sem_wait将会阻塞进程而sem_trywait则会立即返回。 sem_post相当于V操作它将信号量的值加一同时发出唤醒的信号给等待的进程 或线程。 sem_getvalue 得到信号量的值。 sem_destroy 摧毁信号量。 函数传入值 sem:信号量。 函数返回值 同上。 好了了解完基本操作继续做一个练习 这里用信号量实现互斥资源访问的功能 /*sem.c*/   #include stdlib.h     #include stdio.h     #include pthread.h     #include semaphore.h   #include errno.h      /*全局变量*/   int gnum  0;   /*信号量*/   sem_t sem;   /*声明线程运行服务程序*/   static void pthread_func_1 (void);      static void pthread_func_2 (void);           int main (void)      {       /*线程的标识符*/     pthread_t pt_1  0;        pthread_t pt_2  0;        int ret  0;        /*信号量初始化*/     sem_init(sem,0,1);     /*分别创建线程1、2*/     ret  pthread_create (pt_1,          //线程标识符指针                            NULL,          //默认属性                           (void *)pthread_func_1,//运行函数                           NULL);          //无参数     if (ret ! 0)        {           perror (pthread_1_create);        }             ret  pthread_create (pt_2,          //线程标识符指针                           NULL,           //默认属性                             (void *)pthread_func_2, //运行函数                           NULL);          //无参数     if (ret ! 0)        {           perror (pthread_2_create);        }        /*等待线程1、2的结束*/     pthread_join (pt_1, NULL);        pthread_join (pt_2, NULL);             printf (main programme exit!/n);       return 0;      }      /*线程1的服务程序*/   static void pthread_func_1 (void)      {        int i  0;                for (;;)        {          printf (This is pthread1!/n);           sem_wait(sem);     /*等待信号量*/          sleep (1);        /*临界资源*/       gnum;       printf (Thread1 add one to num:%d/n,gnum);              sem_post (sem);        /*释放信号量*/                }      }      /*线程2的服务程序*/    static void pthread_func_2 (void)      {        int i  0;             for (;;)        {          printf (This is pthread2!/n);        sem_wait(sem);     /*等待信号量*/       sleep (1);       /*临界资源*/       gnum;       printf (Thread2 add one to num:%d/n,gnum);              sem_post (sem);        /*释放信号量*/          }             pthread_exit (0);      }     编译运行可以看出和上次互斥锁结果一样的
http://www.huolong8.cn/news/242142/

相关文章:

  • 好的手机网站推荐jq网站模板
  • 企业网站建设策划书怎么写wordpress汉化主题下载地址
  • 网站建设流程步骤为需求分析企业注册在哪个网站申请
  • 石家庄网页网站制作宁波市海曙区建设局网站
  • 可视化自助建站十堰优化seo
  • 物流公司网站怎么做ui培训机构全国排名
  • 邯郸网站设计申请服装网站技术解决方案
  • 南充网站建设多少钱会网站开发想找兼职
  • 爱站网收录dw做网站 怎么做背景图片
  • 做网站首选九零后网络郑州信息港
  • 青岛做外贸网站北京3d效果图制作公司
  • 江门建网站php中英文网站
  • 制作网站首页的步骤帮一个企业做网站流程
  • 网站开发语言networdpress 多人编辑
  • 网站建设运营期末考试网站关键词怎么选择
  • 官方网站举例大型电子商务网站开发架构
  • 借鉴网网站怎么黑入网站
  • 海淀做网站的网络公司网站已收录的404页面的查询
  • 榕江网站建设各大门户网站有哪些
  • 邹城有做网站的吗网站如何改首页模块
  • 重庆市建设公共资源交易中心网站首页wordpress 404判断
  • 不会编程可以做网站吗怎么做旅游网站框架
  • 网站开发的可行性报告培训网站建设平台
  • 南充网站建设略奥科技域名排名查询
  • 建设网站的方法建网站买完域名后怎么做
  • 四川省建设安全协会网站企业服务中心怎么改成创作者服务中心
  • 学信网网站建设怎么搞现在做网络推广网站建设怎么样
  • 汕头做网站的公司南京领动做网站怎么样
  • 广州建网站技术信宜网站设计公司
  • 名师工作室建设网站公司网站内容规划