• 博客园logo
  • 会员
  • 周边
  • 新闻
  • 博问
  • 闪存
  • 众包
  • 赞助商
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
 






药剂学徒

 
 

Powered by 博客园
博客园 | 首页 | 新随笔 | 联系 | 订阅 订阅 | 管理

随笔分类 -  现代操作系统

 
linux c线程池的原理讲解和代码实现(自行伸缩扩展线程数)
摘要:什么是线程池?为什么要使用线程池? 阶段一、一个医院,每天面对成千上万的病人,处理方式是:来一个病人找来一个医生处理,处理完了医生也走了。当看病时间较短的时候,医生来去的时间,显得尤为费时了。 阶段二、医院引进了线程池的概念。设置门诊,把医生全派出去坐诊,病人来看病先挂号排队,医生根据病人队列顺序依 阅读全文
posted @ 2018-03-19 08:09 药剂学徒 阅读(349) 评论(0) 推荐(0)
linux下C线程池的实现
摘要:什么时候需要创建线程池呐?简单地说,如果一个应用需要平凡的创建和销毁线程,而任务执行的时间有非常的短,这样线程的创建和销毁的带来的开销就非常不容忽视,这时也是线程池该出场的时候了。如果线程创建和销毁时间相比任务执行时间可以忽略不计,则没有必要使用线程池了。 下面是linux系统下使用C语言创建的一个 阅读全文
posted @ 2018-03-19 08:09 药剂学徒 阅读(221) 评论(0) 推荐(0)
linux C语言多线程库pthread中条件变量的正确用法逐步详解
摘要:linux C语言多线程库pthread中条件变量的正确用法: 了解pthread常用多线程API和pthread互斥锁,但是对条件变量完全不知道或者不完全了解的人群。 关于条件变量的典型应用,可以参考非常精简的linux线程池实现(一)--使用互斥锁和条件变量。 但是如果对条件变量不熟悉的请看本文 阅读全文
posted @ 2018-03-19 08:08 药剂学徒 阅读(1660) 评论(0) 推荐(0)
使用条件变量(多线程笔记)
摘要:条件变量属性: 使用条件变量可以以原子方式阻塞线程,知道某个特定条件为真为止。条件变量始终与互斥锁一起使用。 使用条件变量,线程可以以原子方式阻塞,知道满足某个条件为止。对掉件的测试时在互斥锁的保护下进行的。 如果条件为假,县城通常会给予条件变量则阻塞,并于原子方式释放等待条件变化的互斥锁。如果一个 阅读全文
posted @ 2018-03-19 08:08 药剂学徒 阅读(831) 评论(0) 推荐(0)
linux C++多线程使用pthread_cond 条件变量
摘要:linux C++ 多线程使用pthread_cond 条件变量 1、多线程中经常使用到锁(pthread_mutex_t )来完成多个线程之间的互斥操作。 但是互斥锁有一个明显的缺点:只有两种状态:锁定合非锁定。 而条件变量则通过允许线程阻塞并等待另一个线程发送唤醒信号的方法弥补了互斥所的不足,他 阅读全文
posted @ 2018-03-19 08:06 药剂学徒 阅读(259) 评论(0) 推荐(0)
linux c 多线程编程--互斥锁与条件变量
摘要:下面给出一个小的测试程序进一步了解互斥,mutex互斥信号量锁住的不是一个变量,而是阻塞住一段程序。如果对一个mutex变量testlock执行了第一次pthread_mutex_lock(testlock)之后,在unlock(testlock)之前的这段时间内,如果有其它线程也执行到了pthre 阅读全文
posted @ 2018-03-19 08:05 药剂学徒 阅读(547) 评论(0) 推荐(0)
linux C--多线程基本概念及API函数
摘要:一、县城和进程之间的关系,与进程相比线程有哪些优点? 1、线程与进程之间的关系: (1)线程是进程的一个执行流,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位。(2) 一个进程由几个线程组成,线程与同属一个进程的其它线程共享进程所拥有的全部资源。(3)进程--资源分配的最小单位, 阅读全文
posted @ 2018-03-19 08:04 药剂学徒 阅读(261) 评论(0) 推荐(0)
linux C多线程编程
摘要:1、进程与线程 进程是程序执行时的一个实例,即它是程序已经执行到何种程度的数据结构的汇集。从内核的观点看,进程的目的就是担当分配系统资源(CPU时间、内存等)的基本单位。 线程是进程的一个执行流,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位。一个进程由几个线程组成(拥有很多相对 阅读全文
posted @ 2018-03-19 08:04 药剂学徒 阅读(332) 评论(0) 推荐(0)
linux C多线程编程入门(基本API及多线程的同步与互斥)
摘要:介绍:什么是线程,线程的优点是什么? 线程在unix下,被称为轻量级的进程,线程虽然不是进程,但却可以看作是unix进程的表亲,同一进程中的多条线程将共享该进程中的全部资源,如虚拟地址空间,文件描述服,和信号处理等等。但同一进程中的多个线程有各自的调用占(call stack),自己的寄存器环境(r 阅读全文
posted @ 2018-03-19 08:03 药剂学徒 阅读(845) 评论(0) 推荐(0)
2.5 linux C 进程与多线程入门--(5)使用互斥量进行同步
摘要:互斥: 简单的理解就是一个县城进入工作区之后,如果有其他的线程想要进入工作区,他就会进入等待状态,要等待工作区内的线程结束后才可以进入。 基本函数: (1)pthread_mutex_init()函数 原型: int pthread_mutex_init(phread_mutex_t *mutex, 阅读全文
posted @ 2018-03-19 08:03 药剂学徒 阅读(236) 评论(0) 推荐(0)
2.4 linux C 进程与多线程入门--(4)简单多线程程序
摘要:一、进程与线程: (1)线程是进程的一个实体,是cpu调度和分派的基本单位,它是比进程更小的能独立运行的基本单位。 (2)进程有独立的地址空间,一个进程崩溃后,在保护模式下不会对其它的进程产生影响,而线程只是一个进程中的不同的执行路径。县城有自己的堆栈和局部变量,单线程之间没有独立的地址空间,一个线 阅读全文
posted @ 2018-03-19 08:02 药剂学徒 阅读(220) 评论(0) 推荐(0)
2.3 linux C 进程与多线程入门--(3)信号
摘要:概念: 信号是系统响应某些状况而产生的事件,进程在接受到信号时会采取相应的行动。信号可以明确的由一个进程产生发送到另外一个进程,用这种办法传递信息或协调操作行为。 进程可以生成信号,捕捉并相应信号或屏蔽信号。信号的名称是在头文件signal.h里定义。下面我列出一部分。 信号名称 说明 SIGALR 阅读全文
posted @ 2018-03-19 08:00 药剂学徒 阅读(186) 评论(0) 推荐(0)
2.2 linux C 进程与多线程入门--(2)等待进程
摘要:问题:在创建进程那一节,我们看到,消息的输出是父子进程交替输出,且父进程在子进程之前结束。如果要安排父进程在子进程结束之后,可以调用wait函数。 函数说明: pid_wait (int stat_loc) 包含的头文件:#include<sys/types.h> #include<sys/wait 阅读全文
posted @ 2018-03-19 07:59 药剂学徒 阅读(202) 评论(0) 推荐(0)
2、进程的描述
摘要:进程是一个动态的概念,描述程序的一次运行活动。进程存在于系统的内存中,是操作系统可感知,可控制的动态实体,是系统分配各种资源,进行调度的基本单位。那么,从处理机的角度来看,如何描述进程?进程的活动就是通过在cpu上执行一系列程序和对相应数据进行操作来体现的,因此程序和它的操作数据是进程存在的实体,但 阅读全文
posted @ 2018-03-18 20:58 药剂学徒 阅读(386) 评论(0) 推荐(0)
2.1 linux C 进程与多线程入门--(1)进程和程序的区别
摘要:进程和程序的区别: j进程是活动的程序,而程序是一个代码的集合。进程是加载到内存中的程序,而程序没有加载到内存中,只是在磁盘上存储着。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 3 阅读全文
posted @ 2018-03-18 20:58 药剂学徒 阅读(288) 评论(0) 推荐(0)
1、进程管理
摘要:一、进程的创建与终止: 1、进程的创建: 在多道程序环境下,只有进程才能在系统中运行因此,为使程序能够运行,必须为他创建进程。导致进程创建的时间有用户登录,作业调度,为用户提供服务等。 一旦系统发现要求创建进程的事件后,便立刻调用创建原语 Create(),通过下述步骤创建一个进程: (1)申请空白 阅读全文
posted @ 2018-03-18 20:57 药剂学徒 阅读(176) 评论(0) 推荐(0)
利用socket实现双机通信
摘要:1、1 什么是TCP tcp是一种面向连接(连接导向)的,可靠的,基于字节流的运输层通信协议。在简化的计算机网络OSI模型中,他完成第四层传输层所指订的的功能。 应用层向tcp层发送用于网络间传送的,用8为字节表示的数据流,然后TCP把数据流分割成设当的长度的报文段。之后TCP把结果包传送给ip层, 阅读全文
posted @ 2018-03-18 20:57 药剂学徒 阅读(708) 评论(0) 推荐(0)
第一章:进程与线程总结
摘要:从本章开始我们将深入考察操作系统是如何设计和构造的。操作系统最核心的概念就是进程: 这是对正在运行的程序的一个抽象。操作系统的其他所有内容都是围绕着进程的概念展开的,] 所以,让操作系统的设计者尽在并透彻的理解进程是非常重要的。 进程是操作系统提供的最古老也是最抽象的概念之一。 1、进程:在任何多道 阅读全文
posted @ 2018-03-18 20:56 药剂学徒 阅读(195) 评论(0) 推荐(0)