Linux
gc_bk
这个作者很懒,什么都没留下…
展开
-
C语言文件学习--感受文件顺序(随机)读写速度
功能:1、每次读取文件前清除缓存;2、分别计算一次写一个g文件、分多次写一个g文件、一次读取一个g文件、逆序读取文件、多次从不同起点读取文件的时间;代码如下:#include<stdio.h>#include<sys/time.h>#include<malloc.h>#include<string.h>#include<stdlib.h>#define N 1024*1024*1024#define M 1024*1024#def原创 2020-12-08 22:34:15 · 450 阅读 · 0 评论 -
多线程学习---创建一个线程读文件?
功能:先创建一个g的文本文件,主线程输入偏移量和需要读取文件的长度,接收到需要读取的文件时创建一个线程从偏移量开始读取文件并打印到屏幕上;代码如下:#include<stdio.h>#include<malloc.h>#include<string.h>#include<pthread.h>#define N 1024*1024*1024struct Th{ long int offset; long int len;};原创 2020-12-08 22:24:42 · 284 阅读 · 0 评论 -
C语言实现生产者消费者(条件变量和信号量)问题?
条件变量实现如下:#include <stdio.h>#include <stdlib.h>#include <unistd.h>#include <pthread.h>//节点结构体struct msg{ int num; //数据区 struct msg *next; //链表区};struct msg *head = NULL;//头指针//struct msg *mp = NULL; //节点指针//利用宏定义原创 2020-12-08 22:14:48 · 549 阅读 · 0 评论 -
C语言实现哲学家(信号量和锁)问题
代码如下:#include<stdio.h>#include<pthread.h>#include<semaphore.h>#define N 5sem_t chopsticks[N];sem_t r;int philosophers[N] = {0,1,2,3,4};pthread_mutex_t mutex[N];void *philosophe1(void *arg){ int i = *(int *)arg; int原创 2020-12-08 22:09:19 · 736 阅读 · 0 评论 -
同步与异步,阻塞与非阻塞
同步和异步关注的是消息通信机制同步,就是在发出一个调用时,在没有得到结果之前,该调用就不返回。但是一旦调用返回,就得到返回值了。换句话说,就是由调用者主动等待这个调用的结果。而异步则是相反,调用在发出之后,这个调用就直接返回了,所以没有返回结果。换句话说,当一个异步过程调用发出后,调用者不会立刻得到结果。而是等被调用者准备好数据后反过来通知调用者。阻塞和非阻塞关注的是程序在等待调用结果(...原创 2019-08-09 20:13:51 · 180 阅读 · 0 评论 -
三种io复用的总结
io复用的作用是能使程序同时监听多个文件描述符;一般在下面几种情况下要用到io复用:客户端程序要同时处理多个socket。客户端程序要同时处理用户输人和网络连接。TCP服务器要同时处理监听socket和连接socket。服务器要同时处理TCP请求和UDP请求。服务器要同时监听多个端口,或者处理多种服务。Linux下实现I/O复用的系统调用主要有select、poll 和epoll以...原创 2019-08-09 19:46:07 · 1005 阅读 · 0 评论 -
多线程同步pv操作循环打印ABC
首先根据信号量的值可以将信号量分为二值信号量和计数信号量(计数信号量)就像一间公共厕所,里面一共有十个坑(最大是32767),算是十个资源。在同一时间可以容纳十个人,当满员的时候,外面的人必须等待里面的人出来,释放一个资源,然后才能在进一个,当他进去之后,厕所又满员了,外面的人还得继续等待…。(二值信号量)就像自己家的卫生间,一般只有一个马桶,在同一时间只能有一个人来用。信号量只能进程两个原...原创 2019-08-08 19:25:02 · 629 阅读 · 0 评论