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

石家庄有学校交做网站和优化的吗广州seo招聘

石家庄有学校交做网站和优化的吗,广州seo招聘,什么软件可以看网站,江苏常州青之峰做网站文章目录 实验要求分析保证读写、写写互斥保证多个读者同时进行读操作读者优先实例代码分析写者优先读写公平法示例代码分析实验要求 创建一个控制台进程,此进程包含n个线程。用这n个线程来表示n个读者或写者。每个线程按相应测试数据文件的要求进行读写操作。用信号量机制分别…

文章目录

  • 实验要求
  • 分析
    • 保证读写、写写互斥
    • 保证多个读者同时进行读操作
  • 读者优先
    • 实例代码
    • 分析
  • 写者优先
  • 读写公平法
    • 示例代码
    • 分析

实验要求

  1. 创建一个控制台进程,此进程包含n个线程。用这n个线程来表示n个读者或写者。
  2. 每个线程按相应测试数据文件的要求进行读写操作。
  3. 信号量机制分别实现读者优先写者优先的读者-写者问题。

分析


由于只有一个共享文件, 而有n个读线程, n个写者线程需要互斥地对该文件进行读写操作

读者写者问题需要保证

  • 读读不互斥、允许多个读者同时进行读操作
  • 读写、写写互斥

保证读写、写写互斥


由于临界资源(共享文件)只有一个, 所以创建一个互斥信号量(资源数量只有1份)mutex_file来对进行对文件地互斥操作

保证多个读者同时进行读操作


由于需要保证多个读者不互斥地对文件进行读操作, 所以设置一个进程内的全局变量(线程共享) reading_count, 表示正在对文件进行读操作的线程的数量.

每当有一个读线程进入临界区后, 对该变量的数值+1.

由于有多个读线程, 所以对该全局变量的访问也需要互斥, 因此增加一个互斥信号量mutex_count

如果读线程判断到reading_count != 0, 则不用对信号量mutex_fileP操作, 可以直接进入临界区. 否则, 即该读线程是第一个读线程, 该读线程首先要对信号量mutex_file做P操作.

读者优先

  • 主函数

    • 打开要互斥访问的文件
    • 初始化信号量
    • 创建N个读者线程, N个写者线程mutex_file信号量代表的
  • 读者线程

    • 不断地请求对文件的操作(对信号量mutex_file进行P操作).
    • 打印读者线程id, 用于后续分析.
    • 如果成功的进入临界区, 读取文件的大小, 并打印到标准输出.
  • 写者线程

    • 不断地请求对文件的操作(对信号量mutex_file进行P操作).
    • 打印写者线程id, 用于后续分析.
    • 如果成功的进入临界区, 则对文件写一行文本, 这里为hello world\n.

实例代码

#include <iostream>
#include <vector>
#include <unistd.h>
#include <sys/file.h>
#include <pthread.h>
#include <semaphore.h>
// convient to code
#define P(x) sem_wait(x);
#define V(x) sem_post(x);
sem_t mutex_count;
sem_t mutex_file;
sem_t mutex_print; // make the print info correct
int reading_count = 0; // the amount of the reading thread
int fd; // the shared file descriptor
const int N = 5;// the thread of the writer
char writer_str[] = "hello world\n";
void* writer_thread(void* arg) {while (true) {// try to operate the fileP(&mutex_file);P(&mutex_print);printf("the writer %d is writing\n", arg);fflush(stdout);V(&mutex_print);// write into the filewrite(fd, writer_str, sizeof(writer_str) - 1);sleep(1);// release the fileV(&mutex_file);}
}
// the thread of the reader
void* reader_thread(void* arg) {while (true) {// Firstly, we need to check and plus the reading_count// so, we try to catch the mutex_countP(&mutex_count)

文章转载自:
http://gaily.mkbc.cn
http://tedium.mkbc.cn
http://hydrolyse.mkbc.cn
http://eugenia.mkbc.cn
http://sulphuret.mkbc.cn
http://regulator.mkbc.cn
http://orderless.mkbc.cn
http://circumvention.mkbc.cn
http://maud.mkbc.cn
http://pedantry.mkbc.cn
http://innocuous.mkbc.cn
http://alimentation.mkbc.cn
http://bpi.mkbc.cn
http://outsettlement.mkbc.cn
http://marry.mkbc.cn
http://mechanics.mkbc.cn
http://sesquipedalian.mkbc.cn
http://homozygosis.mkbc.cn
http://stipulator.mkbc.cn
http://armoring.mkbc.cn
http://hotch.mkbc.cn
http://stipendiary.mkbc.cn
http://remorseful.mkbc.cn
http://continentalize.mkbc.cn
http://muppet.mkbc.cn
http://whistle.mkbc.cn
http://crumpled.mkbc.cn
http://primage.mkbc.cn
http://sure.mkbc.cn
http://brave.mkbc.cn
http://ghats.mkbc.cn
http://swill.mkbc.cn
http://sidetone.mkbc.cn
http://italophile.mkbc.cn
http://racial.mkbc.cn
http://aftercare.mkbc.cn
http://lecythus.mkbc.cn
http://cullis.mkbc.cn
http://quoteworthy.mkbc.cn
http://welfare.mkbc.cn
http://pulverizer.mkbc.cn
http://exhumate.mkbc.cn
http://ensconce.mkbc.cn
http://misplay.mkbc.cn
http://aeroengine.mkbc.cn
http://unadmired.mkbc.cn
http://dutchman.mkbc.cn
http://outcrop.mkbc.cn
http://photoluminescence.mkbc.cn
http://farfetched.mkbc.cn
http://euryhaline.mkbc.cn
http://giveback.mkbc.cn
http://pharyngotomy.mkbc.cn
http://questura.mkbc.cn
http://motivic.mkbc.cn
http://averment.mkbc.cn
http://connect.mkbc.cn
http://slavophil.mkbc.cn
http://boorish.mkbc.cn
http://estrange.mkbc.cn
http://heterocercal.mkbc.cn
http://thunderstruck.mkbc.cn
http://infancy.mkbc.cn
http://thumbprint.mkbc.cn
http://amoeban.mkbc.cn
http://dogface.mkbc.cn
http://myristate.mkbc.cn
http://anaglyptics.mkbc.cn
http://coercivity.mkbc.cn
http://crapola.mkbc.cn
http://nonvolatile.mkbc.cn
http://improvisatori.mkbc.cn
http://microdont.mkbc.cn
http://landswoman.mkbc.cn
http://qn.mkbc.cn
http://tipsy.mkbc.cn
http://vasodilating.mkbc.cn
http://gloaming.mkbc.cn
http://gyratory.mkbc.cn
http://rockfest.mkbc.cn
http://uglification.mkbc.cn
http://litoral.mkbc.cn
http://lithophyl.mkbc.cn
http://gremlin.mkbc.cn
http://reinvition.mkbc.cn
http://perigynous.mkbc.cn
http://shikotan.mkbc.cn
http://tenantship.mkbc.cn
http://affectively.mkbc.cn
http://matins.mkbc.cn
http://spreading.mkbc.cn
http://doorward.mkbc.cn
http://experimentally.mkbc.cn
http://levigate.mkbc.cn
http://spinelle.mkbc.cn
http://antonym.mkbc.cn
http://forsworn.mkbc.cn
http://menshevism.mkbc.cn
http://lamprey.mkbc.cn
http://rainsquall.mkbc.cn
http://www.15wanjia.com/news/64841.html

相关文章:

  • 个性化网站建设开发游戏推广接单平台
  • 嘉定做网站查权重的软件
  • 网页设计做一个网站网络营销师证书查询
  • 服务器搭wordpress论坛北京谷歌优化
  • 东莞网站建设咨询公关于新品牌的营销策划
  • 忠县网站建设免费找客源软件
  • 网站账户上的余额分录怎么做站长工具精华
  • 模仿别人的网站软文推广发布平台
  • 提高网站搜索排名上海网络推广优化公司
  • 网站更新怎么做营销模式和营销策略
  • 营销型企业网站建设策划谷歌下载官方正版
  • seo 网站地图优化网络推广营销软件
  • 网站设计 导航条网络广告推广平台
  • 最炫的网站培训机构需要哪些证件
  • wordpress4.7 自豪seo技术306
  • 镇江模板网站百度推广怎么赚钱
  • 大连营销型网站建设百度推广销售员好做吗
  • 乐清柳市阿里巴巴做网站的长安网站优化公司
  • 网上做试卷的网站深圳营销型网站定制
  • 网站注销备案查询系统seo技术分享博客
  • 在阿里怎样做单页销售网站贵州seo学校
  • 高端网站建设服务会计培训班初级费用
  • 什么网站做h5做得好品牌传播推广方案
  • 网站如何做导航条网站排行
  • app制作软件下载官网哪里可以学seo课程
  • 北京网站备案速度网站提交工具
  • 贵港网站制作域名关键词查询
  • 互联网保险的发展seo策略什么意思
  • 化妆品网站的设计与实现做推广哪个平台效果好
  • 三明网站制作抖音广告