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

网站建设税点建设网站的基本流程

网站建设税点,建设网站的基本流程,wordpress 上传swf,wordpress在线咨询如果有十个银行账号通过不同的十条线程同时向同一个账号转账时,如果没有很好的机制保证十个账号依次存入,那么这些转账可能出问题。我们可以通过互斥量来解决。 C标准库提供了这个互斥量,只需要引入threads.头文件。 互斥量就像是一把锁&am…

如果有十个银行账号通过不同的十条线程同时向同一个账号转账时,如果没有很好的机制保证十个账号依次存入,那么这些转账可能出问题。我们可以通过互斥量来解决。

C标准库提供了这个互斥量,只需要引入threads.头文件。

互斥量就像是一把锁,在一个线程在访问某个共享资源前,需要对互斥量进行加锁操作,其他线程想要对互斥量加锁就会被阻塞,直到当前线程释放该锁。当锁被释放后,被阻塞的线程都开始继续执行,并再次重复前面的步骤,开始争夺可以对互斥量进行加锁的操作。

互斥量这种方式,可以保证每次只有一个线程在操作共享资源。例子如下:

#include <threads.h>
#include <stdio.h>
#define THREAD_COUNT 10
#define THREAD_LOOP 100000000
mtx_t mutex;//全局互斥量对象
long counter = 0;
int run(void *arg){for(int i = 0; i < THREAD_LOOP; i++){mtx_lock(&mutex); // 对互斥量进行加锁counter++; // 共享资源mtx_unlock(&mutex); // 释放锁}printf("Thread %d terminates.\n",*((int*)arg));return thrd_success;
}int main(void){
#ifndef __STDC_NO_THREADS__int ids[THREAD_COUNT];mtx_init(&mutex,mtx_plain);//创建一把锁thrd_t threads[THREAD_COUNT];for(int i = 0; i < THREAD_COUNT; i++){ids[i] = i+1;thrd_create(&threads[i],run,ids+i);//创建线程}for(int i = 0; i < THREAD_COUNT; i++){thrd_join(threads[i],NULL);//等待所有线程执行完成}printf("Counter value is: %ld.\n",counter);mtx_destroy(&mutex);//销毁互斥量对象
#endifreturn 0;
}
~/Desktop$ gcc mtx.c -o mtx
kyunban@kyunban-Parallels-ARM-Virtual-Machine:~/Desktop$ ./mtx
Thread 9 terminates.
Thread 5 terminates.
Thread 8 terminates.
Thread 1 terminates.
Thread 6 terminates.
Thread 7 terminates.
Thread 3 terminates.
Thread 2 terminates.
Thread 4 terminates.
Thread 10 terminates.
Counter value is: 1000000000.

在C语言中,互斥量有三种:

  • mtx_plain :最为简单的互斥量,可对其进行基本的加锁和解锁操作,但不适合需要重复加锁的场景,如在递归调用中,即使当前线程拥有该锁,但对同一个mtx_plain互斥量重复加锁也会导致当前线程被阻塞,从而导致死锁问题(因为当前线程想要加锁就要先等待自己释放锁,而要让当前线程释放锁,就要先要它加锁成功,完成对共享资源的操作后,才能够释放锁,如此一来就是一个无解的问题,死锁就形成了),对于递归调用中要用到锁的场景,可以使用mtx_recursive
  • mtx_recursive:也被称为可重入互斥量,它可以被同一个线程重复锁定多次,而不会阻塞线程,相应地,要对它进行相应多次mtx_unlock才能够完全解锁。
  • mtx_timed:需要配合mtx_timedlock函数一起使用,线程尝试给对应的互斥量加锁时,会以阻塞的方式等待一定时间,若超过给定的时间后仍未给互斥量成功上锁,则线程继续执行。

C标准库还提供了以下两个与“互斥”有关的函数:

  • call_once:只调用指定方法一次,即使它在多个线程中被调用。
  • mtx_trylock:锁住指定互斥量或直接返回
http://www.mmbaike.com/news/42167.html

相关文章:

  • 网站搭建定制百度上怎么发布作品
  • 网站建设属于设备吗百度手机seo
  • 政府网站建设的创新机制百度账号登录入口官网
  • 建立音乐网站迅雷下载磁力天堂
  • 高端营销型企业网站建设全球网络营销公司排行榜
  • 优化seo方案青岛seo百科
  • 做类似昵图网网站友链网
  • 建站公司互橙知乎济南seo顾问
  • 网站服务提供商百度seo排名点击器app
  • 网站制作培训学校长沙seo服务
  • 上海最专业的网站设手机建站系统
  • 健康私人定制网站怎么做广州推广优化
  • 湘潭seo公司seo教程搜索引擎优化
  • 什么网站可以做邮件列表竞价推广开户
  • 做网站视频是什么专业发软文的网站
  • 网站建设咨询哪些方面谷歌paypal官网入口
  • 武汉市注册公司流程和费用超级优化
  • 深圳 公司网站设计足球世界排名国家
  • 跨境电商购物网站市场调研分析
  • 北京大兴区网站建设如何进行新产品的推广
  • 营销的网站建设公司长春网站制作计划
  • 完善网站建设的目的是新乡seo顾问
  • 企业网站改版新闻百度竞价排名公司
  • 做网站收费多少流量宝
  • 即墨市城乡建设局网站在哪里可以找到网站
  • 深州做网站公司免费的自媒体一键发布平台
  • 公司自己做网站流程和备案网站优化提升排名
  • 做网站的公司算外包公司吗寻找外贸客户的网站
  • 做底单的网站免费b站推广网站下载
  • 做的很好的黑白网站关键词排名 收录 查询