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

网站内容不显示广告销售如何寻找客户

网站内容不显示,广告销售如何寻找客户,2023年3月份疫情,品牌塑造的六个步骤互斥 概念 互斥:在多线程中对临界资源(公共资源)的排他性访问。 互斥机制 >>互斥锁 >>保证临界资源的访问控制。 通过使用互斥锁,可以确保某一时刻只有一个线程能够访问临界资源,从而避免竞争条件(race condition…

互斥

概念

互斥:在多线程中对临界资源(公共资源)的排他性访问。
互斥机制 >>互斥锁  >>保证临界资源的访问控制。

通过使用互斥锁,可以确保某一时刻只有一个线程能够访问临界资源,从而避免竞争条件(race conditions)的发生

pthread_mutex_t   mutex;
互斥锁类型        互斥锁变量 内核对象

框架:
 定义互斥锁 >>初始化锁 >>加锁 >>解锁 >>销毁
****                                        ***      ***


定义

pthread_mutex_t   mutex;

定义变量(一般定义为全局变量)

初始化锁

int pthread_mutex_init(pthread_mutex_t *mutex,
const pthread_mutexattr_t *attr);
  • 功能

将已经定义好的互斥锁初始化。

  • 参数

mutex 要初始化的互斥锁
atrr  初始化的值,一般是NULL表示默认锁

  • 返回值

成功 0        失败 非零


加锁

int pthread_mutex_lock(pthread_mutex_t *mutex);
  • 功能

用指定的互斥锁开始加锁代码
加锁后的代码到解锁部分的代码属于原子操作(最小操作、不可再分割的操作),
在加锁期间其他进程/线程都不能操作该部分代码(这部分代码应该尽可能短)
如果该函数在执行的时候,mutex已经被其他部分使用则代码阻塞。

  • 参数

 mutex 用来给代码加锁的互斥锁

  • 返回值

成功 0        失败 非零

加锁时机

  • 访问共享资源时

在任何线程需要读写共享资源(如全局变量、共享数据结构、文件等)之前,应该先上锁。这样可以防止其他线程同时访问这个资源,导致数据竞争或不一致的问题。

例如:在一个银行账户系统中,多个线程同时更新账户余额时,应在修改余额之前锁定。

  • 进入临界区时

临界区是指代码中可能被多个线程并发访问,且访问时需要互斥的部分。临界区通常是需要同步的代码块,在进入临界区前应上锁。

例如:在生产者-消费者模型中,生产者和消费者访问同一个缓冲区时,需要在进入缓冲区的操作代码之前上锁。

  • 检查或修改共享状态时

如果线程需要检查或修改某个共享状态(如队列的长度、任务的状态等),应该在检查或修改之前上锁,以确保其他线程不会在中间更改状态。

例如:在线程池中,当线程检查是否有任务可用时,应先上锁以确保状态一致


解锁

int pthread_mutex_unlock(pthread_mutex_t *mutex);
  • 功能

将指定的互斥锁解锁。
解锁之后代码不再排他访问,一般加锁解锁同时出现。

  • 参数

用来解锁的互斥锁

  • 返回值

成功 0        失败 非零

解锁时机

  • 离开临界区时

当线程完成了对共享资源的访问或完成了临界区的操作,应立即解锁。这样其他等待的线程可以获取锁并继续执行,避免死锁或资源饥饿。

例如:在修改完共享数据之后,线程应立即解锁以释放互斥锁,让其他线程可以访问共享数据。

  • 操作完成时

如果锁是为了保护某个操作的原子性(即操作不可分割),那么在操作完成后应解锁。

例如:如果线程锁定了一个文件进行读写操作,在操作完成后应解锁,以便其他线程可以访问文件。

  • 上锁:在访问共享资源、进入临界区、或检查/修改共享状态之前上锁
  • 解锁:在离开临界区、操作完成后立即解锁

 销毁

 int pthread_mutex_destroy(pthread_mutex_t *mutex);
  • 功能

使用互斥锁完毕后需要销毁互斥锁

  • 参数

mutex 要销毁的互斥锁

  • 返回值

成功  0        失败  非零
 

trylock

int pthread_mutex_trylock(pthread_mutex_t *mutex);
  • 功能

类似加锁函数效果,唯一区别就是不阻塞

  • 参数

mutex 用来加锁的互斥锁

  • 返回值

成功 0        失败 非零
当锁已经被占用时,通常返回 E_AGAIN

同步

线程的同步 

同步 :有一定先后顺序的对资源的排他性访问。

同步产生原因:互斥锁可以控制排他访问但没有次序。

linux下的线程同步 >>信号量机制 >>semaphore.h   posix 
sem_open();


信号量的分类:
1、无名信号量 ——线程间通信
2、有名信号量 ——进程间通信

框架:
信号量的定义>>信号量的初始化 >>信号量的PV操作>>信号量的销毁
 


信号量的定义 

semaphore 
sem_t            sem;
信号量的类型     信号量的变量

信号量的初始化

int sem_init(sem_t *sem, int pshared, unsigned int value);
  • 功能

将已经定义好的信号量赋值。

  • 参数

sem 要初始化的信号量
pshared = 0 ;表示线程间使用信号量
             !=0 ;表示进程间使用信号量
value 信号量的初始值,一般无名信号量
          都是二值信号量,0 1 
          0 表示红灯,进程暂停阻塞
          1 表示绿灯,进程可以通过执行

返回值:成功  0        失败  -1;


信号量的PV 操作

P :申请资源——申请一个二值信号量 (0or1)
V :释放资源——释放一个二值信号量

P操作对应函数 :sem_wait();
V操作对应函数 :sem_post();
 

sem_wait()

int sem_wait(sem_t *sem);
  • 功能

判断当前sem信号量是否有资源可用。
  如果sem有资源(==1),则申请该资源,程序继续运行
  如果sem没有资源(==0),则线程阻塞等待,一 旦有资源
  则自动申请资源并继续运行程序。

  注意:sem 申请资源后会自动执行 sem = sem - 1;(可用作计数信号量)

  • 参数

sem 要判断的信号量资源

  • 返回值

成功 0         失败 -1

sem_post()

int sem_post(sem_t *sem);
  • 功能

函数可以将指定的sem信号量资源释放
  并默认执行,sem = sem+1;
  线程在该函数上不会阻塞。

  • 参数

sem 要释放资源的信号量

  • 返回值

成功 0        失败 -1;



信号量的销毁

int sem_destroy(sem_t *sem);
  • 功能

使用完毕将指定的信号量销毁

  • 参数

sem要销毁的信号量

  • 返回值

死锁的产生

产生死锁的原因

主要是:
(1) 因为系统资源不足。
(2) 进程运行推进的顺序不合适。
(3) 资源分配不当等。
如果系统资源充足,进程的资源请求都能够得到满足,死锁出现的可能性就很低,否则
就会因争夺有限的资源而陷入死锁。其次,进程运行推进顺序与速度不同,也可能产生死锁。

产生死锁的四个必要条件

(1) 互斥条件:一个资源每次只能被一个进程(线程)使用。
(2) 请求与保持条件:一个进程因请求资源而阻塞时,对已获得的资源保持不放。
(3) 不剥夺条件:进程已获得的资源,在末使用完之前,不能强行剥夺。
(4) 循环等待条件:若干进程之间形成一种头尾相接的循环等待资源关系。


文章转载自:
http://www.morning.ztcxx.com.gov.cn.ztcxx.com
http://www.morning.wpcfh.cn.gov.cn.wpcfh.cn
http://www.morning.nrlsg.cn.gov.cn.nrlsg.cn
http://www.morning.hwtb.cn.gov.cn.hwtb.cn
http://www.morning.nnrqg.cn.gov.cn.nnrqg.cn
http://www.morning.rgnq.cn.gov.cn.rgnq.cn
http://www.morning.gmgnp.cn.gov.cn.gmgnp.cn
http://www.morning.leeong.com.gov.cn.leeong.com
http://www.morning.jsmyw.cn.gov.cn.jsmyw.cn
http://www.morning.hbnwr.cn.gov.cn.hbnwr.cn
http://www.morning.nkyc.cn.gov.cn.nkyc.cn
http://www.morning.nbdtdjk.cn.gov.cn.nbdtdjk.cn
http://www.morning.hnhgb.cn.gov.cn.hnhgb.cn
http://www.morning.kfclh.cn.gov.cn.kfclh.cn
http://www.morning.xsfny.cn.gov.cn.xsfny.cn
http://www.morning.bqdpy.cn.gov.cn.bqdpy.cn
http://www.morning.hjbrd.cn.gov.cn.hjbrd.cn
http://www.morning.qmncj.cn.gov.cn.qmncj.cn
http://www.morning.xhxsr.cn.gov.cn.xhxsr.cn
http://www.morning.qlhkx.cn.gov.cn.qlhkx.cn
http://www.morning.syxmx.cn.gov.cn.syxmx.cn
http://www.morning.qyxwy.cn.gov.cn.qyxwy.cn
http://www.morning.cljpz.cn.gov.cn.cljpz.cn
http://www.morning.btwrj.cn.gov.cn.btwrj.cn
http://www.morning.fhkr.cn.gov.cn.fhkr.cn
http://www.morning.wqbbc.cn.gov.cn.wqbbc.cn
http://www.morning.pmhln.cn.gov.cn.pmhln.cn
http://www.morning.kdrly.cn.gov.cn.kdrly.cn
http://www.morning.pxlql.cn.gov.cn.pxlql.cn
http://www.morning.dtpqw.cn.gov.cn.dtpqw.cn
http://www.morning.xkhxl.cn.gov.cn.xkhxl.cn
http://www.morning.lbrwm.cn.gov.cn.lbrwm.cn
http://www.morning.hwlmy.cn.gov.cn.hwlmy.cn
http://www.morning.tturfsoc.com.gov.cn.tturfsoc.com
http://www.morning.rpjyl.cn.gov.cn.rpjyl.cn
http://www.morning.rbktw.cn.gov.cn.rbktw.cn
http://www.morning.gypcr.cn.gov.cn.gypcr.cn
http://www.morning.sxcwc.cn.gov.cn.sxcwc.cn
http://www.morning.zkpwk.cn.gov.cn.zkpwk.cn
http://www.morning.tcylt.cn.gov.cn.tcylt.cn
http://www.morning.tgcw.cn.gov.cn.tgcw.cn
http://www.morning.cfrz.cn.gov.cn.cfrz.cn
http://www.morning.lnbcg.cn.gov.cn.lnbcg.cn
http://www.morning.chzqy.cn.gov.cn.chzqy.cn
http://www.morning.qrpdk.cn.gov.cn.qrpdk.cn
http://www.morning.krnzm.cn.gov.cn.krnzm.cn
http://www.morning.pyncm.cn.gov.cn.pyncm.cn
http://www.morning.banzou2034.cn.gov.cn.banzou2034.cn
http://www.morning.rpdmj.cn.gov.cn.rpdmj.cn
http://www.morning.benqc.com.gov.cn.benqc.com
http://www.morning.cjxqx.cn.gov.cn.cjxqx.cn
http://www.morning.ylxgw.cn.gov.cn.ylxgw.cn
http://www.morning.oumong.com.gov.cn.oumong.com
http://www.morning.rbgqn.cn.gov.cn.rbgqn.cn
http://www.morning.sjsks.cn.gov.cn.sjsks.cn
http://www.morning.dsgdt.cn.gov.cn.dsgdt.cn
http://www.morning.dwhnb.cn.gov.cn.dwhnb.cn
http://www.morning.rxhs.cn.gov.cn.rxhs.cn
http://www.morning.xnfg.cn.gov.cn.xnfg.cn
http://www.morning.hrypl.cn.gov.cn.hrypl.cn
http://www.morning.dglszn.com.gov.cn.dglszn.com
http://www.morning.dtrz.cn.gov.cn.dtrz.cn
http://www.morning.zbqry.cn.gov.cn.zbqry.cn
http://www.morning.rfwgg.cn.gov.cn.rfwgg.cn
http://www.morning.rlsd.cn.gov.cn.rlsd.cn
http://www.morning.flzqq.cn.gov.cn.flzqq.cn
http://www.morning.gmwdl.cn.gov.cn.gmwdl.cn
http://www.morning.rdzgm.cn.gov.cn.rdzgm.cn
http://www.morning.zympx.cn.gov.cn.zympx.cn
http://www.morning.mmhaoma.com.gov.cn.mmhaoma.com
http://www.morning.gkgb.cn.gov.cn.gkgb.cn
http://www.morning.drswd.cn.gov.cn.drswd.cn
http://www.morning.yrrnx.cn.gov.cn.yrrnx.cn
http://www.morning.lbxcc.cn.gov.cn.lbxcc.cn
http://www.morning.rwjfs.cn.gov.cn.rwjfs.cn
http://www.morning.gsdbg.cn.gov.cn.gsdbg.cn
http://www.morning.ndnhf.cn.gov.cn.ndnhf.cn
http://www.morning.hrpbq.cn.gov.cn.hrpbq.cn
http://www.morning.qrmyd.cn.gov.cn.qrmyd.cn
http://www.morning.cwznh.cn.gov.cn.cwznh.cn
http://www.tj-hxxt.cn/news/14097.html

相关文章:

  • 昆明公司建设网站制作wordpress
  • 山东平阴疫情最新消息seo网络推广优化教程
  • 长安手机网站建设做网站公司哪家比较好
  • 做公司网站百度知道首页官网
  • 内网 做 网站最新国际新闻
  • 施工企业管理制度完整版seo快速优化软件网站
  • 动态网站开发周期中国科技新闻网
  • avada做外贸网站品牌推广的概念
  • 浙江建设网一官方网站天津网站排名提升
  • 网站建设确认单网络营销推广方案3篇
  • 怎么做自己的企业网站seo需要什么技术
  • 网站的代理页面怎么做的鄂尔多斯seo
  • 公益广告不浪费水网站怎么做搜索引擎营销方案
  • 最专业的企业营销型网站建设公司软文标题写作技巧
  • 阿里云网站建设服务费会计科目外贸网站建设优化推广
  • 北京好的网站建设网站推广培训
  • 网站建设下坡路网站设计规划
  • 有没有做视频的网站免费seo快速排名系统
  • 用ai做网站搜索引擎搜索
  • 今日新闻有哪些seo优化收费
  • 忠县网站建设seo快速提升排名
  • wordpress内容折叠插件衡阳seo
  • 常州网站推广软件游戏推广工作好做吗
  • 网站推广百度优化沧州网络推广外包公司
  • wordpress付费阅读主题百度seo排名优
  • 关键词排名快照优化360优化大师安卓版下载
  • 网站建设flash设计win11优化大师
  • 网站建设中企动力强网络营销课程设计
  • 虚拟机怎么做网站百度极速版推广员怎么申请
  • 北京北控京奥建设有限公司网站怎么自己做一个网址