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

网站建设培训个人免费推广平台有哪些

网站建设培训个人,免费推广平台有哪些,国外设计网站排名,宁波公司查询如果有十个银行账号通过不同的十条线程同时向同一个账号转账时,如果没有很好的机制保证十个账号依次存入,那么这些转账可能出问题。我们可以通过互斥量来解决。 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.tj-hxxt.cn/news/31276.html

相关文章:

  • 天津平台网站建设推荐搜索引擎的工作原理是什么?
  • 微擎wordpress重庆百度整站优化
  • 网站二级域名怎么做乐清网站建设
  • 聚美优品网站怎么做的个人网站推广
  • 网站构建的滚动新闻怎么做建立自己的网站平台
  • 厦门网站建设哪家专业站长工具推荐网站
  • 记事本做网站怎么调整图片间距友链交换网站源码
  • 设计响应式网站多少钱班级优化大师使用心得
  • c 做网站后台软文广告范文
  • 网站怎么做seo优化啊营销培训课程2022
  • 网站设计合同不用流量的地图导航软件
  • 广告公司做的网站字体侵权上海优化网站
  • 怎么建设一个网站赚钱网站推广郑州
  • 手机访问网站 自动缩放四川企业seo推广
  • wordpress夜间模式seo怎么发布外链
  • 专门做产品排名的网站东莞网站建设排名
  • 提供网站建设服务的网站推广代理
  • 珠海网站建cms快速建站
  • 西峡网站建设中国宣布取消新冠免费治疗
  • 重庆网站建设-首选云慧通打开一个网站
  • 第二季企业网站开发信息发布网站有哪些
  • 服务器图片网站seo最新优化方法
  • app产品网站建设网站seo优化排名
  • thinkcmf 做企业网站济南做网站推广哪家好
  • 卡盟网站建设2021十大网络舆情案例
  • wordpress hotelbooking赣州seo外包怎么收费
  • 企业铭做网站百度网盘搜索
  • wordpress子站共享用户快推达seo
  • 深圳哪家公司做网站好参考消息今天新闻
  • 襄阳网站建设公司哪家好百度账号怎么改名字