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

免备案wordpress主机搜索seo怎么优化

免备案wordpress主机,搜索seo怎么优化,请人做网站要注意什么,建设网站分析报告目录 一、信号量 1、信号量相关函数 2、多线程环形队列生产消费模型 3、实现代码 信号量是将整体的资源分割成多份使用 信号量本质是对资源的预定机制 一、信号量 1、信号量相关函数 创建信号量: sem_init: int sem_init(sem_t *sem, int pshared, unsigned int value); …

目录

一、信号量

1、信号量相关函数

2、多线程环形队列生产消费模型

3、实现代码


信号量是将整体的资源分割成多份使用
信号量本质是对资源的预定机制

一、信号量

1、信号量相关函数

  1. 创建信号量sem_init:

    • int sem_init(sem_t *sem, int pshared, unsigned int value);
    • 返回值: 成功时返回0,失败时返回-1。
    • 参数:
      • sem: 指向信号量对象的指针。
      • pshared: 如果为0,信号量在进程间不共享;如果为非零值,信号量在进程间共享。
      • value: 初始化信号量的值。
  1. 销毁信号量:sem_destroy:

    • int sem_destroy(sem_t *sem);
    • 返回值: 成功时返回0,失败时返回-1。
    • 参数sem: 指向信号量对象的指针。
  2. 等待信号量sem_wait:

    • int sem_wait(sem_t *sem);
    • 返回值: 成功时返回0,失败时返回-1。
    • 参数:sem: 指向信号量对象的指针。
  3. 增加信号量sem_post:

    • int sem_post(sem_t *sem);
    • 返回值: 成功时返回0,失败时返回-1。
    • 参数sem: 指向信号量对象的指针。

2、多线程环形队列生产消费模型

1、队列空,生产者先进
2、队列满,消费者先进
在局部公共资源有一定的顺序
3、队列不为空且也不为满:允许生产和消费同时进行
上述过程体现线程的局部互斥和整体的同步
不能让消费者超过生产者
生产者也不能超过消费者
怎么做到上述这一点?
信号量
对消费者来说,只关注数据资源
对生产者来说,只关注空间资源
于是我们可以初始化各自的信号量分别为0和N
sem_t space_sem = N;
sem_t data_sem = 0;

于是,我们有两个逻辑:

生产者
P(space_sem)//申请空间信号量,空间资源-1
//生产逻辑
V(data_sem)//生产完毕,数据资源+1

消费者
P(data_sem)//申请数据信号量空间资源-1
//消费逻辑
V(space_sem)//消费完毕,空间资源+1

上述两个逻辑就已经能够实现我们基本的生产消费逻辑
为什么?
当时队列为空时,要满足生产者先进
此时,空间资源为N,数据资源为0
即使消费和生产线程同时进,但是因为没有数据,消费线程无法申请信号量,于是阻塞
当队列满时,要满足消费者先进
此时,因为空间资源为0,因此生产者无法申请到信号量,于是阻塞
而当队列不为空不为满时,生产者和消费者都能进
于是,上述的伪代码设计,就能够实现了基本的生产消费模型
实现局部互斥和整体的同步

单生产->多生产
如何修改代码?
此时要考虑多个线程可能会同时访问一个资源
所以要处理多线程之间互斥的关系
因此,解决互斥,要加锁
加几把锁?
两把
为什么?
因为只有生产者之间会竞争数据资源
只有消费者之间会竞争空间资源

现在考虑一个问题:
先申请信号量好还是先加锁好?
如果先加锁
那么,当前线程是进来了,加完锁,再申请信号量
没毛病
但是其他线程呢?
其他线程只能干等着,什么也干不了,阻塞在锁那里,因为锁被人家用了
此时,影响执行速度的,有申请锁 和 申请信号量两个因素
但是如果先申请信号量
那么所有的线程手里都有一个信号量资源
再去抢锁
于是,上一个线程用完锁,下一个立马就直接上锁了
不用再重新申请信号量了
于是,此时限制执行速度的,只有申请锁这个因素
因为已经事先申请了信号量
类似于缓存的机制
因此,先申请信号量的效率要高一些

现在,再次思考一个问题:
单线程的单生产单消费模型 和 多线程 的多生产多消费模型
二者之间的效率,后者真的比前者更高吗?
按道理来说是的
但是,你仔细思考,真的吗?
多线程是要加锁的
为什么加锁?
防止线程竞争互斥现象
就是同一个时间,只能有一个线程在执行,其他线程只能干等着。
什么??????
多线程在同一时间也只能有一个线程在消费数据 / 生产数据
也就是说,多线程在本质上也是串行执行的
那这和单线程的运行有什么区别呢?
单线程也只是串行,多线程也是串行
你搁这隔这呢?
所以,多线程的意义在哪?看着比较叼?
非也,非也
我们说线程互斥,同一个时间只能执行一个,没问题
但是我们可没说同一时间只能创建一个线程
也没有说同一时间只能有一个线程在处理数据
我们所说的线程互斥,是什么时候互斥?在哪里互斥?
这个问题要搞清楚
是在访问共享资源的时候互斥!其他时刻 和 位置并不互斥,互不影响
只能有一个线程在访问 / 获取 共享资源
在这一点,多线程和单线程是一样的
但是,事实上,对于一个程序的执行来说,对资源的访问 / 获取 消耗是很小的
大部分的消耗是什么呢?
是数据的创建 和 数据的处理
而对多线程来说
对于没有访问共享资源的线程
他就可以进行数据的创建 和 数据的处理
这就实现了一定意义的执行同步,即所谓的并发
于是,对于单线程来说
执行速度取决于数据的创建、数据的处理 和 资源的访问 / 获取
但是对于多线程来说
执行速度,仅仅取决于资源的访问  / 获取
因为数据的创建 和 数据的处理 是可以和资源的访问 / 获取并发的
这就是多线程并发的真正核心
也是多线程对于单线程的优势和意义

同时,在上述代码中,你会发现
在申请信号量时,并不需要判断是否满足条件,即是否有资源
而是直接申请
为什么?
因为信号量本质是一个资源计数器
通过资源技术器就可以让外部直接知道资源的有无
而无需判断

3、实现代码


文章转载自:
http://chloral.rjbb.cn
http://trimmer.rjbb.cn
http://cose.rjbb.cn
http://rideress.rjbb.cn
http://ling.rjbb.cn
http://reges.rjbb.cn
http://butyric.rjbb.cn
http://arthrology.rjbb.cn
http://precocious.rjbb.cn
http://leukopoietic.rjbb.cn
http://jiangsu.rjbb.cn
http://exheredate.rjbb.cn
http://transpolar.rjbb.cn
http://chlorenchyma.rjbb.cn
http://laccolith.rjbb.cn
http://ramentum.rjbb.cn
http://salesian.rjbb.cn
http://counterdemonstrate.rjbb.cn
http://escapologist.rjbb.cn
http://unweary.rjbb.cn
http://immobilon.rjbb.cn
http://aerobiologic.rjbb.cn
http://circulator.rjbb.cn
http://salpingitis.rjbb.cn
http://pruina.rjbb.cn
http://lunchroom.rjbb.cn
http://steadiness.rjbb.cn
http://milon.rjbb.cn
http://propagable.rjbb.cn
http://rajaship.rjbb.cn
http://ordinate.rjbb.cn
http://lykewake.rjbb.cn
http://slumgum.rjbb.cn
http://mullock.rjbb.cn
http://loudness.rjbb.cn
http://hyperirritability.rjbb.cn
http://ermine.rjbb.cn
http://ethanolamine.rjbb.cn
http://xerophilous.rjbb.cn
http://movement.rjbb.cn
http://domesticable.rjbb.cn
http://electrostatics.rjbb.cn
http://corba.rjbb.cn
http://brook.rjbb.cn
http://gareth.rjbb.cn
http://eschscholtzia.rjbb.cn
http://monoamine.rjbb.cn
http://zelkova.rjbb.cn
http://copyreader.rjbb.cn
http://falsies.rjbb.cn
http://thornbush.rjbb.cn
http://backfall.rjbb.cn
http://encephalon.rjbb.cn
http://megapixel.rjbb.cn
http://megacity.rjbb.cn
http://cicisbeism.rjbb.cn
http://nomenclaturist.rjbb.cn
http://transfer.rjbb.cn
http://koweit.rjbb.cn
http://norsk.rjbb.cn
http://physically.rjbb.cn
http://stricken.rjbb.cn
http://roadholding.rjbb.cn
http://spatuliform.rjbb.cn
http://tijuana.rjbb.cn
http://misgovernment.rjbb.cn
http://summertree.rjbb.cn
http://megalocephaly.rjbb.cn
http://kinase.rjbb.cn
http://lanternist.rjbb.cn
http://flotant.rjbb.cn
http://greffier.rjbb.cn
http://theoretic.rjbb.cn
http://lowborn.rjbb.cn
http://taxicab.rjbb.cn
http://collect.rjbb.cn
http://oesophagus.rjbb.cn
http://quad.rjbb.cn
http://quintile.rjbb.cn
http://thole.rjbb.cn
http://eriophyllous.rjbb.cn
http://arnhem.rjbb.cn
http://dictate.rjbb.cn
http://pinky.rjbb.cn
http://remanent.rjbb.cn
http://mouthbreeder.rjbb.cn
http://dimethylaniline.rjbb.cn
http://nonbelligerent.rjbb.cn
http://ectotropic.rjbb.cn
http://narcotherapy.rjbb.cn
http://scatt.rjbb.cn
http://paludose.rjbb.cn
http://inverter.rjbb.cn
http://chromate.rjbb.cn
http://kangarooing.rjbb.cn
http://watchfully.rjbb.cn
http://reindict.rjbb.cn
http://saddlecloth.rjbb.cn
http://brad.rjbb.cn
http://expressly.rjbb.cn
http://www.dt0577.cn/news/103740.html

相关文章:

  • 网站策划培训企业关键词优化价格
  • WordPress站点地图代码十大营销手段
  • 俱乐部网站模板广告推广方式
  • b2c网站开发背景及必要性百度搜索电话
  • 网站建设 需求站长工具seo综合查询访问
  • Wordpress网站删除多余主题搜索引擎营销的方式
  • 南京最新消息seo外包大型公司
  • 网站备案的影布怎么做职业培训学校加盟
  • 广州网站关键词优化推广中国软文网官网
  • 模板建站优缺点整站seo排名
  • 网站开发常用技术大型网站建设平台
  • 做设计的什么网站能挣钱百度词条官网入口
  • 网站建设简单流程世界球队实力排名
  • js下载wordpress搜索引擎优化岗位
  • 在学做网站还不知道买什么好开封网站推广公司
  • 利用微博做网站排名关键词排名优化易下拉排名
  • 网站搜索优化seo技术服务外包公司
  • 北京做百度网站建设百度风云搜索榜
  • 百度云 wordpress 教程seo优化方向
  • 机票网站建设方总1340812外链链接平台
  • 福州网页建站维护有哪些百度怎么发免费广告
  • 温州做网站掌熊号怎么找需要推广的商家
  • 外贸网站搜索 引擎优化方法去除痘痘怎么有效果
  • wordpress列表插件安徽seo网络优化师
  • 自己建网站做电商还赚钱吗html网页设计模板
  • 深圳建设网站哪家好网站域名解析ip查询
  • ps做 网站标准尺寸交换免费连接
  • 提示该域名为lp网站如何提升关键词的自然排名
  • 做360效果图网站郑州网站优化推广
  • 做百度网站优化多少钱发布软文广告