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

dedecms织梦系统网站防会员注册机网络营销师证书需要多少钱

dedecms织梦系统网站防会员注册机,网络营销师证书需要多少钱,中文域名注册网站,专业营销型网站建设线程同步协同步调,对公共区域数据按序访问。防止数据混乱,产生与时间有关的错误。数据混乱的原因资源共享(独享资源则不会)调度随机(意味着数据访问会出现竞争)线程间缺乏必要同步机制锁的使用建议锁!对公共数据进行保护。所有线程【应该】在…

线程同步

        协同步调,对公共区域数据按序访问。防止数据混乱,产生与时间有关的错误。

数据混乱的原因

  1. 资源共享(独享资源则不会)

  2. 调度随机(意味着数据访问会出现竞争)

  3. 线程间缺乏必要同步机制

锁的使用

        建议锁!对公共数据进行保护。所有线程【应该】在访问公共数据前先拿锁再访问。但,锁本身不具备强制性。

主要应用函数:

    pthread_mutex_init       函数:创建锁

    pthread_mutex_destory    函数:初始化

    pthread_mutex_lock       函数:加锁

    pthread_mutex_trylock    函数:

    pthread_mutex_unlock     函数:解锁

以上5个函数的返回值都是:成功返回0,失败返回错误号

、、、、、、、、、、、

pthread_mutex_t 类型,其本质是一个结构体。为简化理解,应用时可忽略其实现细节,简单当成整数看待

pthread_mutex_t mutex;变量mutex只有两种取值:0,1

、、、、、、、

使用mutex(互斥量、互斥锁)一般步骤:

    pthread_mutex_t 类型。

    1. pthread_mutex_t lock;  创建锁

    2  pthread_mutex_init; 初始化      1

    3. pthread_mutex_lock;加锁      1-- --> 0

    4. 访问共享数据(stdout)   

    5. pthrad_mutext_unlock();解锁     0++ --> 1

    6. pthead_mutex_destroy;销毁锁

、、、、、、、、、、、

int pthread_mutex_init(pthread_mutex_t *restrict mutex,

const pthread_mutexattr_t *restrict attr)

这里的restrict关键字,表示指针指向的内容只能通过这个指针进行修改

restrict关键字:

    用来限定指针变量。被该关键字限定的指针变量所指向的内存操作,必须由本指针完成。

初始化互斥量:

       pthread_mutex_t mutex;

       1. pthread_mutex_init(&mutex, NULL);              动态初始化。

       2. pthread_mutex_t mutex = PTHREAD_MUTEX_INITIALIZER;  静态初始化。

例子:借助互斥锁管理共享数据实现同步

未加锁

加锁

互斥锁使用技巧

注意事项:

       尽量保证锁的粒度, 越小越好。(访问共享数据前,加锁。访问结束【立即】解锁。)

       互斥锁,本质是结构体。 我们可以看成整数。 初值为 1。(pthread_mutex_init() 函数调用成功。)

       加锁: --操作, 阻塞线程。

       解锁: ++操作, 唤醒阻塞在锁上的线程。

       try锁:尝试加锁,成功--。失败,返回。同时设置错误号 EBUSY

死锁

是使用锁不恰当导致的现象:

       1. 对一个锁反复lock。

       2. 两个线程,各自持有一把锁,请求另一把。

第一种情况,反复加锁;

第二种情况,1先拿A锁,2先拿B锁,1又要拿B,2又要拿A,就都在这阻塞等待。

读写锁

特性:

  1. 读写锁是“写模式加锁”时, 解锁前,所有对该锁加锁的线程都会被阻塞。
  2. 读写锁是“读模式加锁”时, 如果线程以读模式对其加锁会成功;如果线程以写模式加锁会阻塞。
  3. 读写锁是“读模式加锁”时, 既有试图以写模式加锁的线程,也有试图以读模式加锁的线程。那么读写锁会阻塞随后的读模式锁请求。优先满足写模式锁。读锁、写锁并行阻塞,写锁优先级高

        读写锁也叫共享-独占锁。当读写锁以读模式锁住时,它是以共享模式锁住的;当它以写模式锁住时,它是以独占模式锁住的。写独占、读共享。

        读写锁非常适合于对数据结构读的次数远大于写的情况。

、、、、、、、、、、、、

    锁只有一把。以读方式给数据加锁——读锁。以写方式给数据加锁——写锁。

    读共享,写独占。

    写锁优先级高。(两个写,一个读,等两个写结束再读)

    相较于互斥量而言,当读线程多的时候,提高访问效率

    pthread_rwlock_t  rwlock;

    pthread_rwlock_init(&rwlock, NULL);

    pthread_rwlock_rdlock(&rwlock);    try

    pthread_rwlock_wrlock(&rwlock);    try

    pthread_rwlock_unlock(&rwlock);

    pthread_rwlock_destroy(&rwlock);

以上函数都是成功返回0,失败返回错误号。

pthread_rwlock_t 类型    用于定义一个读写锁变量

pthread_rwlock_t  rwlock

例子

3个线程不定时 "全局资源,5个线程不定时 "同一全局资源

http://www.dtcms.com/wzjs/361049.html

相关文章:

  • 免费的旅游网站模板西安今日头条新闻
  • 网站开发科技公司网站网络优化外包
  • 关于推动门户网站建设d如何在百度上发布广告
  • 北京建站优化公司百度推广费用
  • 做设计一般用的素材网站是什么意思在线网页生成器
  • 郑州企业免费建站四川游戏seo整站优化
  • 公司电商网站建设方案模板营销软件哪个好
  • 天水做网站百度一下首页手机版
  • 淘宝网站首页怎么做网站优化网站
  • 国内男女直接做的视频网站新人做外贸怎么找国外客户
  • 石狮网站开发大连seo外包平台
  • 辽宁官方网站做辣白菜国家再就业免费培训网
  • java做的网站怎么设置关闭和开启网站访问不了色盲图
  • 网站设计制作上海收录网
  • 海口网球场网站seo快速排名优化的软件
  • 找题做的网站信息发布网站有哪些
  • 找新疆做网站的网页设计个人主页模板
  • 星锐网站建设温州云优化seo
  • 郑州网站制作案例网络公司名字大全
  • 订货网站开发价格奶盘seo伪原创工具
  • wordpress author 404常用的seo查询工具
  • 服务网站建设公司seo刷关键词排名免费
  • 门户网站开发费怎做账常州网站推广
  • 济南推广网站建设球队积分排名
  • 街舞舞团公司做网站网店运营实训报告
  • 网站建设五行属什么搜索优化软件
  • dw制作简单网站小程序开发制作
  • 桂林论坛网站建设如何免费做视频二维码永久
  • 西安网站建设的费用哪个公司网站设计好
  • vs2012网站开发谷歌怎么投放广告