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

色卡网站做行业门户网站要投资多少钱

色卡网站,做行业门户网站要投资多少钱,深圳网站建设专业的公司,网站报价系统进程间通信方式通常有共享内存 信号量 消息队列 管道 FIFO Socket等几种。 共享内存的模型#xff0c;它是最有效率的进程间通信方式进程间信号量是进程间同步主要方式#xff0c;信号量操作为负的时候#xff0c;进程阻塞。直到信号量为正 内存映射是一种特殊的共享内存…     进程间通信方式通常有共享内存 信号量 消息队列 管道 FIFO Socket等几种。        共享内存的模型它是最有效率的进程间通信方式      进程间信号量是进程间同步主要方式信号量操作为负的时候进程阻塞。直到信号量为正         内存映射是一种特殊的共享内存方式只是本质上是对文件的操作      管道是亲戚进程间通信的常用方式常用于输入输出重定向         Fifo也成为命名管道可用于无关联进程之间      Socket是唯一一个不同主机间进程通信的方式 下面简单介绍一下他们的特点与功能               共享内存分配 绑定 脱离 释放 1效率高特别是大数据量通信 2各进程需要协调共同的键值需要提供额外机制防止竞争条件 3异步通信 4和信号量一同使用                    内存映射(多进程共享文件进行通信的机制)                    1分配内存                    2读入文件内容至内存                    3内存的内容回写到文件               信号量 1线程信号量:同步多线程环境的计数器。 2进程间同步的信号量: System V信号量操作和sharedmemory类似。               消息队列 1打开或创建消息队列 2读写操作 3获得或设置队列属性               管道 1单向信息的传递设备 2用于进程的线程之间或者是父子进程之间通信 3自动同步进程(管道的容量是有限的当管道写满的时候写入端自动阻塞管道容量4096字节)                 FIFO 1在文件系统中是一个有名字的管道 2任何进程都可以打开 3进程间无需关联                 SocketSocket 1是一种双向通信设备 2同一主机不同进程间通信 3不同主机间的通信     以下是一些程序帮助大家理解  共享内存 #includestdio.h       #includesys/shm.h       #includestring.h       #includefcntl.h       #includesys/stat.h       int main()       {           pid_t pid;           int share_id;           share_idshmget(IPC_PRIVATE,getpagesize(),IPC_CREAT | IPC_EXCL | S_IRUSR | S_IWUSR );           pidfork();           if(pid0)           {                char *share1NULL;                share1(char*) shmat (share_id, 0,0);                memset(share1,0,getpagesize());                strcpy(share1,hello,everyone\n);                shmdt(share1);           }           else if(pid0)           {                 char *share2NULL;                 share2(char*) shmat(share_id,0,0);                 printf(read characters from memory!\n);                 printf(%s\n,share2);                 shmdt(share2);                 shmctl(share_id,IPC_RMID,0);           }            return 1;       } 信号量      #include sys/types.h      #include sys/ipc.h      #include sys/sem.h      #includestdio.h      #includesys/stat.h      #includefcntl.h      #includeunistd.h      #define MAX 3      union semun     {         int val;         struct semid_ds *buf;         unsigned short int *array;         struct seminfo *_buf;     };     int sig_alloc(key_t key, int sem_flags)     {         return semget (key, MAX, sem_flags);     }       int sig_destory (int semid,int numth)     {         union semun ignored_argument;         return semctl (semid, numth, IPC_RMID,ignored_argument);     } /*         parray is a set of initialized value */     int sig_init (int semid,int *parray)    {         union semun argument;         int i0;         for(i0;iMAX;i)         {         //      values[i] *(parrayi);                   argument.array parray;                 semctl (semid, i, SETALL, argument);         }    }    int sig_wait(int semid,int numth)    {         struct sembuf operations[MAX];         operations[numth-1].sem_num numth-1;         operations[numth-1].sem_op -1;         operations[numth-1].sem_flg SEM_UNDO;         return semop(semid,operations,1);    }    int sig_post(int semid,int numth)    {         struct sembuf operations[MAX];         operations[numth-1].sem_num numth-1;         operations[numth-1].sem_op 1;         operations[numth-1].sem_flg SEM_UNDO;         return semop(semid,operations,1);    } int main()    {         pid_t pid;         int sig_id,i0;         int sig_val[MAX]{1,0,0};         sig_idsig_alloc(0,IPC_CREAT);         sig_init(sig_id,sig_val);         pidfork();         if(pid0)         {                 while(i10)                 {                         sig_wait(sig_id,3);                         printf(*************** \n);                         sig_post(sig_id,3);                 }         } else if(pid)         {                 i0;                 while(i10)                 {                         sig_wait(sig_id,1);                         printf(\n);                         sig_post(sig_id,1);                 }           }         return 1;     } 内存映射 #include sys/mman.h #include sys/types.h #includestdio.h #includestring.h #includesys/stat.h #includestdlib.h #includefcntl.h #includeunistd.h #define FILE_LENGTH 100 int main(int argc,char **argv) {         int fd1,fd2;         char *pfileNULL;         char *loadNULL;         int num;         if(argc3)         {                 printf(please input more file\n);                 return 0;         }           fd1open(argv[1],O_RDONLY);         fd2open(argv[2],O_RDWR|O_CREAT,S_IRUSR|S_IWUSR);         printf(fd2%d\n,fd2);           //fd2open(argv[2],O_WRONLY);         lseek (fd2, FILE_LENGTH1, SEEK_SET);         write (fd2, , 1);         lseek (fd2, 0, SEEK_SET);         printf(num%d\n,num);         printf(fd2%d\n,fd2);           pfile(char*)mmap(0,FILE_LENGTH,PROT_WRITE|PROT_READ,MAP_PRIVATE,fd2,0);         read(fd1,pfile,FILE_LENGTH);         write(fd2,pfile,FILE_LENGTH);         close(fd2);         printf(pfile%d\n,pfile);         munmap(pfile,FILE_LENGTH);         close(fd1);         return 1; }   管道      #include sys/mman.h      #include sys/types.h      #includestdio.h      #includestring.h      #includesys/stat.h      #includestdlib.h      #includefcntl.h      #includeunistd.h    int main ()    {     int fds[2];     pid_t pid;     pipe (fds);     pid fork ();     if (pid (pid_t) 0)     {       char str[10000];       sleep(1);       close(fds[1]);       read(fds[0],str,10000);       printf(%s,str);       close(fds[0]);     }     else if(pid0)     {         FILE*fp;         char a[80];         close(fds[0]);         fp(fopen(copy1.c,r));         if(fpNULL)         {            printf(can not open!!);            exit(0);         }         else         {         while(1)         {           if(fread(a,80,1,fp)0) break;           write(fds[1],a,sizeof(a));         }         }           wait();           close(fds[1]);           fclose(fp);           return 0;     } 转载于:https://www.cnblogs.com/3ddan/p/3251979.html
http://www.pierceye.com/news/163632/

相关文章:

  • 深圳网站建设哪家公司便宜网站一般用什么语言做
  • 网站平台建设所需开发工具成都麦卡网络做网站开发怎么样
  • 可以做网站的电脑软件济南网页设计
  • 推广网站制作网站建设代理怎么做
  • 做网站页面遇到的问题网站规划设计的步骤
  • 请人做网站要多少钱做视频网站代码
  • 厦门建设网站的公司苏州外贸公司网站建设流程图
  • php做的静态网站怎么加密seo是什么工作
  • 溧水网站建设建立什么指标体系和评价程序规范
  • 怎样向顾客电销网站建设一号网站建设
  • 平陆县做网站移动网站开发的视频下载
  • 百度做个公司网站要多少钱区块链开源平台
  • 企业网站建设建设网站指定关键词优化
  • 找兼职做网站的哪里找建筑学院app网站
  • 电影采集网站建设松门建设规划局网站
  • 多用户自助建站系统wordpress修改生效
  • 免费学编程国内网站珠海网站建设 科速
  • 网站制作公司兴田德润简介福州公司做网站
  • 织梦网站图标路径上海网站推广
  • 网站亚马逊商城
  • h5企业模板网站模板江苏专业网站建设公司电话
  • 手机网站建设怎么样企业官网建设的重要性
  • 笑话小网站模板html网站制作标准
  • 大连网站建设哪家专业图片识别搜索引擎
  • 营销网站制作企业邓州市建设局网站
  • 如何从客户网站开发客户请解释网站开发的主要流程.
  • 做网站的价格 外贸最好科技广州网站建设
  • 烟台开发区网站做网站诊断步骤
  • 成都网站建设哪家技术好关于做网站的搞笑段子
  • 网站的设计制作流程计算机网站开发要考什么证