摘要: 互斥模型 同步模型 生产者消费者其实是用了两种模型,就是先同步再互斥,就是首先要先由生产者生产产品,后面消费者才能消费产品,同时生产和消费这个过程是要互斥的。 1 #include<semaphore.h> 2 #include<pthread.h> 3 #include<stdio.h> 4 #i 阅读全文
posted @ 2021-04-26 20:46 stronger_zjf 阅读(176) 评论(0) 推荐(0) 编辑
摘要: linux下为了多线程同步,通常用到锁的概念。posix下抽象了一个锁类型的结构:ptread_mutex_t。通过对该结构的操作,来判断资源是否可以访问。顾名思义,加锁(lock)后,别人就无法打开,只有当锁没有关闭(unlock)的时候才能访问资源。即对象互斥锁的概念,来保证共享数据操作的完整性 阅读全文
posted @ 2021-04-26 19:57 stronger_zjf 阅读(172) 评论(0) 推荐(0) 编辑
摘要: 管道通信(上) (一)概述 Linux Shell 都允许重定向,而重定向使用的就是管道。例如,ps | grep vsftpd 。管道是单向的、先进先出的、无结构的、固定大小的字节流。管道是Linux由Unix那里继承过来的进程间的通信机制,它是Unix早期的一个重要通信机制。其思想是,在内存中创 阅读全文
posted @ 2021-03-31 22:45 stronger_zjf 阅读(140) 评论(0) 推荐(0) 编辑
摘要: 该案例是实现两个进程之间使用命名管道进行通信。 进程1:fifo01.c 1 #include<unistd.h> 2 #include<sys/types.h> 3 #include<sys/stat.h> 4 #include<stdio.h> 5 #include<stdlib.h> 6 #i 阅读全文
posted @ 2021-03-30 22:17 stronger_zjf 阅读(61) 评论(0) 推荐(0) 编辑
摘要: 文件I/O 一、先来了解下什么是文件I/O和标准I/O: 文件I/O:文件I/O称之为不带缓存的IO(unbuffered I/O)。不带缓存指的是每个read,write都调用内核中的一个系统调用。也就是一般所说的低级I/O——操作系统提供的基本IO服务,与os绑定,特定于linix或unix平台 阅读全文
posted @ 2021-03-29 22:57 stronger_zjf 阅读(145) 评论(0) 推荐(0) 编辑
摘要: 链表习题: 1. 单链表反转 2. 链表中环的检测 3. 两个有序的链表合并 4. 删除链表倒数第 n 个结点 5. 求链表的中间结点 1 #include <iostream> 2 using namespace std; 3 4 typedef struct LNode 5 { 6 int da 阅读全文
posted @ 2021-02-09 20:41 stronger_zjf 阅读(91) 评论(0) 推荐(0) 编辑
摘要: 题目描述 链表是数据结构中一种最基本的数据结构,它是用链式存储结构实现的线性表。它较顺序表而言在插入和删除时不必移动其后的元素。现在给你一些整数,然后会频繁地插入和删除其中的某些元素,会在其中某些时候让你查找某个元素或者输出当前链表中所有的元素。 输入 输入数据只有一组,第一行有n+1个整数,第一个 阅读全文
posted @ 2021-02-02 21:24 stronger_zjf 阅读(214) 评论(0) 推荐(0) 编辑
摘要: 类模板几种常见的情况 类模板的定义我在上一篇博客模板小结中已经介绍过,大家还不懂的可以去看下。 1 #include<iostream> 2 using namespace std; 3 template<class T1,class T2> //模板类 4 class Person 5 { 6 p 阅读全文
posted @ 2020-12-03 21:28 stronger_zjf 阅读(389) 评论(0) 推荐(0) 编辑
摘要: 模板 模板(Template)指C++程序设计设计语言中采用类型作为参数的程序设计,支持通用程序设计。C++ 的标准库提供许多有用的函数大多结合了模板的观念,如STL以及IO Stream。模板是C++支持参数化多态的工具,使用模板可以使用户为类或者函数声明一种一般模式,使得类中的某些数据成员或者成 阅读全文
posted @ 2020-11-22 20:00 stronger_zjf 阅读(147) 评论(0) 推荐(0) 编辑
摘要: 几种常见的运算符重载 运算符重载,就是对现有的运算符重新进行定义,赋予其另一种功能,以适应不同的数据类型。 形式如下: 1 (返回类型)operator运算符(参数列表) 2 { 3 ....... 4 } (1)左移(<<) 和右移(>>)运算符 1 #include<iostream> 2 us 阅读全文
posted @ 2020-11-15 16:44 stronger_zjf 阅读(362) 评论(0) 推荐(0) 编辑