线程与进程

进程:

进程是系统中能独立运行并作为资源分配的基本单位,进程拥有自己独立的处理环境和系统资源,是动态的,是运行在内存中的程序的执行实例。只要程序运行,此时就是进程,程序每运行一次,就会创建一个进程,进程的状态是变化的,其包括进程的创建、调度和消亡。

线程:

是用来执行具体功能和任务的,需要进程为载体,是进程的一个实体,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位.线程自己基本上不拥有系统资源,只拥有一点在运行中必不可少的资源,但是它可与同属一个进程的其他的线程共享进程所拥有的全部资源。是并发执行的程序在执行过程中分配和管理资源的基本单位,是一个动态概念,竟争计算机系统资源的基本单位。

多进程:

多进程即多个进程。
进程的调度进制是时间片轮转,上下文进行切换,多进程不是说一个进程执行完再执行另一个进程,而是交替执行的,一个进程执行一段时间,然后下一个进程在执行一段时间。

多线程:

多线程就是指一个进程中同时有多个线程正在执行。
进程切换时,用户空间也会切换,所以会增加系统开销增加系统开销,而一个进程中的多个线程共享一个进程的资源,所以线程切换时不用切换这些资源,效率会更高线程的调度机制跟进程是一样的,多个线程来回切换运行。
多线程更是有:多任务程序设计、并发程序设计、网络程序设计、数据共享的优点。

进程的创建

pid_t fork(void)
功能:在已有的进程基础上有创建一个子进程。
成功:
>0 子进程的进程号,标识父进程的代码区
0 子进程的代码区
失败:
‐1 返回给父进程,子进程不会创建

在这里插入图片描述

线程创建

int pthread_create(pthread_t *thread, const pthread_attr_t *attr, 3 void *(*start_routine) (void *), void *arg);
功能:创建一个新的子线程
  thread:当前创建的线程id 			  	
  attr:线程的属性,设置为NULL表示以默认的属性创建 
  start_routine:线程处理函数,如果当前函数执行完毕,则子线程也执行完毕 
  arg:给线程处理函数传参用的
  返回值:成功:0  失败:非0
  • 6
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值