
多进程,多线程
文章平均质量分 80
wwena8
现为研一在读学生
展开
-
进程1-进程相关知识点
一 概念:进程是运行中的程序,是操作系统分配资源的最基本的单位。二 进程标识符pid: 类型pid_t 命令ps 进程标识符是顺序依次向下使用 getpid(); getppid();三 进程的产生:fork() fork意味着拷贝,一模一样的命令 cow。未决信号与文件锁不继承,返回值不相同。资源利用量归0 init进程:1号进程是所有进程的祖先进程四 进程的消亡与释放资源 wait(); waitpid();...原创 2020-06-07 21:22:56 · 251 阅读 · 0 评论 -
线程3-线程池思想
通常多线程编程任务分发包括:分块法、交叉分配法、池类分配法。池类分配法能够最有效地避免计算任务分配不均匀的情况。线程池思想包括:1 main线程负责分发任务2 全局变量num:num>0时有待计算任务,num=0时无算任务需要上游分发,num=-1时无计算任务所有线程退出3 互斥量:获取资源前一定先上锁,临界区内的跳转语句,跳转到临界区外一定要及时释放锁资源筛质数代码如下:#include<stdio.h>#include<stdlib.h>#inc原创 2020-06-07 11:13:08 · 206 阅读 · 0 评论 -
线程2-线程同步
概念线程是可以共享资源变量的,当多个线程同时写一个资源变量时就会出现线程同步问题造成读写不一致。通常采用锁机制来实现线程同步。互斥量:锁机制,确保同一时刻只有一个线程访问共享资源。常用API包括:int pthread_mutex_init(pthread_mutex_t *mutex, const pthread_mutexattr_t *attr);int pthread_mutex_destroy(pthread_mutex_t *mutex);int pthread_mutex原创 2020-06-06 22:24:19 · 117 阅读 · 0 评论 -
线程1-线程基本操作
一 基本概念:线程是进程执行的最基本单位,是一个正在运行的函数,通常包括:main线程与兄弟线程。线程间通信共享进程虚拟内存空间。常用的线程标识:pthread_t常用api:比较线程pid:int pthread_equal(pthread_t t1, pthread_t t2);返回线程标识:pthread_t pthread_self(void);二 线程常见状态与操作:1 线程创建int pthread_create(pthread_t *thread原创 2020-06-06 10:37:39 · 427 阅读 · 0 评论 -
php多进程ipc
php多进程ipc由于php没有多线程机制,在一些cpu密集型任务时,只能起多进程操作,于是要考虑进程间通信等场景。php已有方式包括:管道、消息队列、共享内存、socket,如下重点探究文件与共享内存<?phpconst SHM_VAR = 1;const M = 20000;const N = 100000;const NUM = 10;/** * 文件 */function pipe(){ // 申请锁资源 $sem_key = ftok( __F.原创 2020-05-19 20:31:28 · 259 阅读 · 0 评论 -
Linux进程探讨系列之一
进程是多道操作系统中最基本的概念,是运行中的程序,也是内核分配软硬件资源的基本单位。我们通常又将其成为任务。一:进程描述符进程描述符(task_struct),是由内核对进程的一种控制手段。往往判断该进程的运行状态、所占物理内存位置、占用I/O情况等。task_struct是一种结构体类型,主要包括以下属性列:进程的基本信息、指向内存区描述符的指针,与进程相关的tty,当前目录,指向文原创 2017-12-05 09:25:14 · 330 阅读 · 0 评论 -
accept惊群研究
一:惊群的定义惊群是多进程多线程编程中的一个常见问题,就是当多个进程和线程在同时阻塞等待同一个事件时,如果这个事件发生,会唤醒所有的进程,但最终只可能有一个进程/线程对该事件进行处理,其他进程/线程会在失败后重新休眠,这种性能浪费就是惊群。二:accept惊群在使用多进程处理客户端-服务器连接时,往往会出现惊群现象,即在主进程listen之后调用fork创建多个子进程之后,这些子进程由原创 2018-02-02 21:10:37 · 620 阅读 · 0 评论