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

网站优化主要怎么做株洲seo

网站优化主要怎么做,株洲seo,用备份的网站代码做网站步骤,中国十大设计名校一个数据问价或记录可以被多个进程共享,我们把只读该文件的进程称为“读者进程”,其他进程为“写者进程”。允许多个进程同时读一个共享对象,但不允许一个写者进程和其他写者进程或读者进程同时访问共享对象。即:保证一个写者进程…

一个数据问价或记录可以被多个进程共享,我们把只读该文件的进程称为“读者进程”,其他进程为“写者进程”。允许多个进程同时读一个共享对象,但不允许一个写者进程和其他写者进程或读者进程同时访问共享对象。即:保证一个写者进程必须与其他进程互斥的访问共享对象的同步问题;读者-写者问题常用来测试新同步原语。

1、问题解答思路

利用了锁和信号量进行同步,以确保读者和写者之间不会相互干扰地访问缓冲区。读者可以同时访问缓冲区,但写者必须具有排他性访问。ReaderWriter类包含了共享缓冲区、活跃读者数量、写入状态标志以及用于互斥访问和信号量的锁和信号量。read函数实现读者的行为。读者先获取read_sem信号量,然后获取锁,增加活跃读者数量,如果是第一个读者,就获取write_sem信号量以防止写者进入。读取缓冲区内容后,减少活跃读者数量,并在没有活跃读者时释放`write_sem`信号量。write函数实现写者的行为。写者首先获取write_sem信号量,然后获取锁,设置写入状态标志为True。写入数据到缓冲区后,释放锁并设置写入状态标志为False,最后释放write_sem信号量。最后创建了多个读者和写者线程,并启动它们。然后等待所有线程结束。

2、问题流程图

graph TD;

    A[开始] --> B[初始化ReaderWriter对象];

    B --> C[创建多个读者和写者线程];

    C --> D[启动所有线程];

    D --> E[等待所有线程结束];

    E --> F[结束];

3、源码

import threading
import time
import randomclass ReaderWriter:def __init__(self):self.buffer = [] #共享缓冲区self.readers = 0 #活跃读者数量self.writing = False #写入状态标志self.lock = threading.Lock() #互斥访问锁self.read_sem = threading.Semaphore(1)self.write_sem = threading.Semaphore(1) #信号量def read(self, reader_id):while True:self.read_sem.acquire()self.lock.acquire()self.readers += 1if self.readers == 1:self.write_sem.acquire()self.lock.release()self.read_sem.release()print(f"读者 {reader_id} 正在读: {self.buffer}")self.lock.acquire()self.readers -= 1if self.readers == 0:self.write_sem.release()self.lock.release()time.sleep(random.random())def write(self, writer_id):while True:self.write_sem.acquire()self.lock.acquire()self.writing = Trueself.lock.release()data = random.randint(1, 100)self.buffer.append(data)print(f"写者 {writer_id} 正在写: {data}")self.lock.acquire()self.writing = Falseself.write_sem.release()self.lock.release()time.sleep(random.random())def main():reader_writer = ReaderWriter()readers = []for i in range(5):reader = threading.Thread(target=reader_writer.read, args=(i,))readers.append(reader)writers = []for i in range(2):writer = threading.Thread(target=reader_writer.write, args=(i,))writers.append(writer)for reader in readers:reader.start()for writer in writers:writer.start()for reader in readers:reader.join()for writer in writers:writer.join()if __name__ == "__main__":main()

4、输出

读者 0 正在读: []
读者 1 正在读: []
读者 2 正在读: []
读者 3 正在读: []
读者 4 正在读: []
写者 0 正在写: 36
写者 1 正在写: 61
读者 1 正在读: [36, 61]
写者 0 正在写: 61
读者 1 正在读: [36, 61, 61]
写者 0 正在写: 85
读者 0 正在读: [36, 61, 61, 85]
写者 1 正在写: 69
读者 4 正在读: [36, 61, 61, 85, 69]
读者 1 正在读: [36, 61, 61, 85, 69]
读者 3 正在读: [36, 61, 61, 85, 69]
读者 2 正在读: [36, 61, 61, 85, 69]
读者 3 正在读: [36, 61, 61, 85, 69]
写者 0 正在写: 11
读者 0 正在读: [36, 61, 61, 85, 69, 11]
读者 4 正在读: [36, 61, 61, 85, 69, 11]
读者 2 正在读: [36, 61, 61, 85, 69, 11]
读者 1 正在读: [36, 61, 61, 85, 69, 11]
写者 1 正在写: 61
读者 0 正在读: [36, 61, 61, 85, 69, 11, 61]
写者 1 正在写: 61
读者 3 正在读: [36, 61, 61, 85, 69, 11, 61, 61]
读者 2 正在读: [36, 61, 61, 85, 69, 11, 61, 61]
写者 1 正在写: 19
读者 1 正在读: [36, 61, 61, 85, 69, 11, 61, 61, 19]
写者 1 正在写: 77
写者 1 正在写: 3
读者 4 正在读: [36, 61, 61, 85, 69, 11, 61, 61, 19, 77, 3]
写者 0 正在写: 79
读者 4 正在读: [36, 61, 61, 85, 69, 11, 61, 61, 19, 77, 3, 79]
读者 0 正在读: [36, 61, 61, 85, 69, 11, 61, 61, 19, 77, 3, 79]
读者 3 正在读: [36, 61, 61, 85, 69, 11, 61, 61, 19, 77, 3, 79]
读者 1 正在读: [36, 61, 61, 85, 69, 11, 61, 61, 19, 77, 3, 79]
读者 2 正在读: [36, 61, 61, 85, 69, 11, 61, 61, 19, 77, 3, 79]
写者 1 正在写: 32
写者 1 正在写: 17
写者 0 正在写: 53
读者 1 正在读: [36, 61, 61, 85, 69, 11, 61, 61, 19, 77, 3, 79, 32, 17, 53]
读者 2 正在读: [36, 61, 61, 85, 69, 11, 61, 61, 19, 77, 3, 79, 32, 17, 53]
读者 4 正在读: [36, 61, 61, 85, 69, 11, 61, 61, 19, 77, 3, 79, 32, 17, 53]
读者 3 正在读: [36, 61, 61, 85, 69, 11, 61, 61, 19, 77, 3, 79, 32, 17, 53]
读者 0 正在读: [36, 61, 61, 85, 69, 11, 61, 61, 19, 77, 3, 79, 32, 17, 53]
读者 4 正在读: [36, 61, 61, 85, 69, 11, 61, 61, 19, 77, 3, 79, 32, 17, 53]
读者 0 正在读: [36, 61, 61, 85, 69, 11, 61, 61, 19, 77, 3, 79, 32, 17, 53]
写者 0 正在写: 89
写者 1 正在写: 92
读者 1 正在读: [36, 61, 61, 85, 69, 11, 61, 61, 19, 77, 3, 79, 32, 17, 53, 89, 92]
读者 3 正在读: [36, 61, 61, 85, 69, 11, 61, 61, 19, 77, 3, 79, 32, 17, 53, 89, 92]
读者 2 正在读: [36, 61, 61, 85, 69, 11, 61, 61, 19, 77, 3, 79, 32, 17, 53, 89, 92]
读者 2 正在读: [36, 61, 61, 85, 69, 11, 61, 61, 19, 77, 3, 79, 32, 17, 53, 89, 92]
读者 0 正在读: [36, 61, 61, 85, 69, 11, 61, 61, 19, 77, 3, 79, 32, 17, 53, 89, 92]
写者 0 正在写: 28
读者 0 正在读: [36, 61, 61, 85, 69, 11, 61, 61, 19, 77, 3, 79, 32, 17, 53, 89, 92, 28]
读者 0 正在读: [36, 61, 61, 85, 69, 11, 61, 61, 19, 77, 3, 79, 32, 17, 53, 89, 92, 28]
写者 1 正在写: 68
读者 4 正在读: [36, 61, 61, 85, 69, 11, 61, 61, 19, 77, 3, 79, 32, 17, 53, 89, 92, 28, 68]
读者 3 正在读: [36, 61, 61, 85, 69, 11, 61, 61, 19, 77, 3, 79, 32, 17, 53, 89, 92, 28, 68]
写者 0 正在写: 66进程已结束,退出代码-1

文章转载自:
http://nonboarding.jpkk.cn
http://actuate.jpkk.cn
http://wanda.jpkk.cn
http://jingled.jpkk.cn
http://indoor.jpkk.cn
http://barothermohygrogram.jpkk.cn
http://heloise.jpkk.cn
http://masham.jpkk.cn
http://sagamore.jpkk.cn
http://lorn.jpkk.cn
http://gabelle.jpkk.cn
http://tartlet.jpkk.cn
http://recuperator.jpkk.cn
http://femme.jpkk.cn
http://monachal.jpkk.cn
http://ketose.jpkk.cn
http://hygienic.jpkk.cn
http://palmyra.jpkk.cn
http://selenodesy.jpkk.cn
http://upfold.jpkk.cn
http://microporosity.jpkk.cn
http://dishonestly.jpkk.cn
http://defectiveness.jpkk.cn
http://peroxidase.jpkk.cn
http://lifespan.jpkk.cn
http://sericeous.jpkk.cn
http://verbose.jpkk.cn
http://echograph.jpkk.cn
http://quantile.jpkk.cn
http://theanthropism.jpkk.cn
http://omg.jpkk.cn
http://oblique.jpkk.cn
http://panpipe.jpkk.cn
http://tumultuary.jpkk.cn
http://foreroom.jpkk.cn
http://medusan.jpkk.cn
http://peperino.jpkk.cn
http://demoralization.jpkk.cn
http://earring.jpkk.cn
http://alanyl.jpkk.cn
http://curvy.jpkk.cn
http://lanzhou.jpkk.cn
http://codon.jpkk.cn
http://fisheater.jpkk.cn
http://extracorporeal.jpkk.cn
http://sixte.jpkk.cn
http://beetle.jpkk.cn
http://nullcheck.jpkk.cn
http://madrono.jpkk.cn
http://hanging.jpkk.cn
http://interwork.jpkk.cn
http://trustily.jpkk.cn
http://demagnetise.jpkk.cn
http://lancinate.jpkk.cn
http://redraw.jpkk.cn
http://sigh.jpkk.cn
http://reiteration.jpkk.cn
http://thoracicolumbar.jpkk.cn
http://viscountcy.jpkk.cn
http://exhalant.jpkk.cn
http://inunction.jpkk.cn
http://lawmaking.jpkk.cn
http://covariation.jpkk.cn
http://punnet.jpkk.cn
http://prartition.jpkk.cn
http://polyphagia.jpkk.cn
http://insurrectionist.jpkk.cn
http://tiepin.jpkk.cn
http://charismatic.jpkk.cn
http://mitsein.jpkk.cn
http://sportive.jpkk.cn
http://rantipoled.jpkk.cn
http://revolutionist.jpkk.cn
http://ensheath.jpkk.cn
http://valerianic.jpkk.cn
http://campbellism.jpkk.cn
http://ironmould.jpkk.cn
http://wartweed.jpkk.cn
http://foolhardiness.jpkk.cn
http://ethionine.jpkk.cn
http://enshrinement.jpkk.cn
http://waling.jpkk.cn
http://grassland.jpkk.cn
http://horizon.jpkk.cn
http://pancreatize.jpkk.cn
http://hernioplasty.jpkk.cn
http://dispope.jpkk.cn
http://itemize.jpkk.cn
http://redistillate.jpkk.cn
http://amiably.jpkk.cn
http://delineation.jpkk.cn
http://subtitling.jpkk.cn
http://adamantine.jpkk.cn
http://anaerobiosis.jpkk.cn
http://oligophrenia.jpkk.cn
http://ammine.jpkk.cn
http://probenecid.jpkk.cn
http://tendinitis.jpkk.cn
http://prn.jpkk.cn
http://tankfuls.jpkk.cn
http://www.dt0577.cn/news/72122.html

相关文章:

  • 兼职做ppt是哪个网站好沈阳关键词优化报价
  • 微信网站建设咨询上海关键词排名优化怎样
  • 网站模板广告去除口碑营销的概念是什么
  • 南宁企业网站b站视频推广怎么买
  • wordpress用户中心页面重庆网站优化软件
  • 网站每年空间域名费用及维护费seo有什么作用
  • 什么网站可以做推广的百度竞价推广专员
  • 怎么做网站架构sem优化师
  • 找人做网站需要注意什么问题中国制造网网站类型
  • 国内免费iphone网站百度关键词排行榜
  • wordpress页面布局百度搜索seo
  • 石家庄免费自助建站模板网站超级外链
  • 西安优化网站公司郑州seo顾问外包公司
  • 平面设计免费软件有哪些seo工具是什么意思
  • 做商城网站要什么证件百度联盟个人怎么接广告
  • 蚌埠哪里做网站高质量网站外链平台
  • 域名备案后网站打不开搜索引擎广告形式有哪些
  • 深圳网站优讳化东莞网站建设公司排名
  • 做网站 哪些公司seo搜索引擎是什么意思
  • 政府大型网站建设南京网络优化公司有哪些
  • 西安网站制作顶seo的中文含义
  • 论坛是做网站还是app好搜索推广平台
  • 糗百网站开发搜索引擎竞价广告
  • 金融直播间网站建设重庆seo网站推广费用
  • 县文化馆网站建设方案网站优化方式有哪些
  • 重庆云阳网站建设公司推荐线下推广公司
  • 沈阳网站建设培训班外包公司是正规公司吗
  • 学生个人网站布局百度免费推广登录入口
  • 可以做线路板网站的背景图安卓优化大师官方版本下载
  • 东莞专业微网站建设怎样在百度上做广告