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

静态网站html遵义哪里有做网站的

静态网站html,遵义哪里有做网站的,网站收录大量下降,我想做服装网站怎么做信号量 除了临界点机制、互斥量机制可实现临界资源的互斥访问外#xff0c;信号量#xff08;Semaphore#xff09;是另一选择。 信号量与互斥量的区别 对于互斥量来说#xff0c;主要应用于临界资源的互斥访问#xff0c;并且能够有效地避免优先级反转问题。对于信号量…信号量 除了临界点机制、互斥量机制可实现临界资源的互斥访问外信号量Semaphore是另一选择。 信号量与互斥量的区别 对于互斥量来说主要应用于临界资源的互斥访问并且能够有效地避免优先级反转问题。对于信号量而言它虽然也能用于临界资源的互斥访问但是不能处理优先级反转问题。 也正因为信号量没有考虑优先级反转问题所以相对于互斥量来说是一种轻量级的实现方式比互斥量耗费更少的CPU资源。 此外信号量除了用于互斥还可以用于处理不同线程之间的同步问题而互斥量却不行。 针对上述情况有三种类型的信号量按照功能来分可以分为线程对临界资源互斥访问的互斥信号量、用于线程间同步的信号量、控制系统中临界资源的多个实例使用的计数信号量。 用于同步的信号量其初始值在创建信号量时设置为0表示同步事件尚未发生。 临界资源互斥的信号量初始值为1表明当前没有任务获取该信号量。 用于控制系统中临界资源的多个实例使用的计数信号量其初始值为n表明需要管理的实例个数最大数为n这样的信号量也称为计数信号量。 以下例子通过一个计数信号量和互斥信号量实现对一个有界缓冲使用的控制这就是“生产者与消费者”问题。 计数信号量FULL表示已经被填充了的数据项目。计数信号量EMPTY表示空闲数据项数目。 以上的取值范围均为0,n-1,其初始值分别为0n-1。 由于有界缓冲区是共享资源还需要一个互斥信号量MUTEX控制生产者线程与消费者线程对它的互斥访问其初始值为1。 创建信号量 acoral_evt_t *acoral_sem_create(unsigned int semNum) {acoral_evt_t *evt;evt acoral_alloc_evt();if (NULL evt){return NULL;}semNum 1 - semNum;evt-count semNum;evt-type ACORAL_EVENT_SEM;evt-data NULL;acoral_evt_init(evt);return evt; }初始化信号量。当静态定义信号量而不是采用指针形式定义时内存空间已经在定义时分配此时应当调用初始化函数acoral_sem_init()对定义过的信号量进行初始化。 aCoralSemRetValEnum acoral_sem_init(acoral_evt_t *evt,unsigned int semNum) {if(NULL evt){return SEM_ERR_NULL;}semNum 1 - semNum;evt-count semNum;evt-type ACORAL_EVENT_SEM;evt-data NULL;acoral_evt_init(evt);return SEM_SUCCED; }与互斥量初始化类似就是为acoral_evt_t各个成员赋值。 这里需要提及的是count初始化从传入的参数semNum可知该变量用来表示当前信号量所控制的临界资源的实例的数量但在具体实现时并不是和大家想象的数字一样如1代表有1个资源2代表有2个资源… 在实现时实例数量是用“1-semNum”来表示的此时0代表有1个资源-1代表有两个资源1代表已经没有资源且有1个线程在等待该资源实例。 申请信号量。申请信号量时需要传入两个参数先前创建的信号量的地址超时处理的时间。 acoralSemRetValEnum acoral_sem_pend(acoral_evt_t *evt, unsigned int timeout) {acoral_thread_t *cur acoral_cur_thread;if(acoral_intr_nesting){return SEM_ERR_INTR;}if(NULL evt){return SEM_ERR_NULL;}if(ACORAL_EVENT_SEM ! evt-type){return SEM_ERR_TYPE;}//计算信号量处理acoral_enter_critical();/*判断是否还有可用资源从前面的介绍可知这里的SEM_RES_AVAI其实就是0如果count数目小于等于0代表有资源实例。如果count大于0代表在等待的有多少个线程。如果有可用的资源实例让count的数目加一后退出表示成功申请信号量。*/if((char)evt-count SEM_RES_AVAI){evt-count;acoral_exit_critical();return SEM_SUCCED;}//如果无可用的资源实例让count的数目加一后再将自身挂起重新调度线程evt-count;acoral_unrdy_thread(cur);if(timeout 0){cur-delay TIME_TO_TICKS(timeout);timeout_queue_add(cur);}acoral_evt_queue_add(evt, cur);acoral_exit_critical();acoral_sched();acoral_enter_critical();//如果某个线程等待某个资源实例而又无法获取它将被挂起而若它希望被挂起的时间小于一个设定值timeout还需将TCB的成员更新为timeout并挂载到延迟队列中如果延迟时间到将进行相应处理if(timeout 0 cur-Delay 0){evt-count--;acoral_evt_queue_Del(cur);acoral_exit_critical();return SEM_ERR_TIMEOUT;}timeout_queue_del(cur);acoral_exit_critical();return SEM_SUCCED; }释放信号量 acoralSemRetValEnum acoral_sem_post(acoral_evt_t *evt) {acoral_thread_t *thread;/* 参数检测*/if (NULL evt){return SEM_ERR_NULL; /* error*/}if (ACORAL_EVENT_SEM ! evt-type){return SEM_ERR_TYPE;}acoral_enter_critical();if((char)evt-count SEM_RES_NOVAI){evt-count--;acoral_exit_critical();return SEM_SUCCED;}evt-count--;thread acoral_evt_high_thread(evt);if(thread NULL){acoral_print(Err Sem post\n);acoral_Exit_critical();return SEM_ERR_UNDEF;}timeout_queue_del(thread);acoral_evt_queue_del(thread);acoral_rdy_thread(thread);acoral_exit_critical();acoral_sched();return SEM_SUCCED; }同步机制 信号量机制不仅可以实现临界资源互斥访问控制系统中临界资源多个实例的使用还可以用于维护线程之间、线程和中断之间的同步。 当信号量用来实现同步时其初始值为0如一个线程正等待某个I/O操作当该I/O操作完成后中断服务程序发出信号量该线程得到信号量后才能继续往下执行。 某个线程将一直处于等待状态除非获取了其它线程发给它的信号量。 用于互斥的信号量初始值在创建时设置为1此时1-semNum0是小于等于0的表明当前没有线程获取该信号量。 而用于同步的信号量初始值在信号量创建时设置为0此时1-semNum1是大于1的表明同步尚未发生。 同步信号量的实现和互斥信号量是一样的只是创建时传入的参数决定了是用于同步还是用于互斥。
http://www.hkea.cn/news/14434296/

相关文章:

  • 建设银行官网首页网站购纪念币网站地图 xml html
  • 宝安网站建设-信科网络还有什么类似建设通的网站
  • 做网站代理拉不到人工作简历模板电子版
  • 做网站上凡科北京科技网站制作
  • 爱站工具包如何增加网站丝芭传媒有限公司
  • 网站开发涉及到缓存吗做润滑油网站图片
  • 广州网站建设推荐乐云seowordpress首页加图片
  • 完美建设工程有限公司网站网站建设公司哪个好
  • 千岛湖建设集团办公网站做神马网站快速排名软
  • 上传照片的网站赚钱网站开发成本最低多少钱
  • 自适应好还是响应式网站好做详情页到那个网站找模特素材
  • 网站建设多少钱专业程序开发过程的四个步骤
  • 做新闻门户网站需要什么赣州找工作的网站
  • 淘宝建站服务热点新闻头条
  • 爱站网关键字查询上海做网站服务商
  • 网站建设php培训权威解读当前经济热点问题
  • 太原php网站开发如何查看网站的更新频率
  • 网站备案是什么网站开发面试自我介绍
  • 体育网站建设方案小程序链接wordpress
  • php做购物网站的弊端馆陶网站推广
  • 哪些行业需要网站有哪些内容thinkphp可以做网站吗
  • 门户网站首页设计兖州市做网站
  • 满山红厦门网站建设企业网站建设教程 pdf
  • 360免费建站连接百度 营销推广怎么收费
  • 移动网站建设是什么优酷视频网站源码
  • 违反建设投诉网站举报物流网站开发策划
  • 地图网站模板网站主页和子页风格如何统一
  • 美食网站建设的重要性怎么做网站外链
  • 孝感织云网站建设实搜石家庄网站建设小程序
  • 云南城市建设职业学院成绩查询网站网页设计代码是怎么加链接