Linux C 线程控制(一)

本文详细介绍了Linux环境中线程的基本概念、优点,以及如何创建、终止线程。线程作为操作系统分配CPU时间的基本单位,能提高程序响应速度和多处理器效率。线程创建通过pthread_create函数,线程终止可通过return或pthread_exit。资源释放和线程同步是线程管理的重要方面,pthread_join用于等待线程结束并回收资源。
摘要由CSDN通过智能技术生成

一、线程

什么是线程?

  • 线程是计算机中独立运行的最小单位,运行时占用很少的系统资源。由于每个线程占用的CPU时间是由系统分配的,因此可以把线程看作操作系统分配CPU时间的基本单位。线程是交替进行的。

线程的优点:

  • 在多进程情况下,每个进程都有自己独立的地址空间,而在多线程情况下,同一进程内在线程共享进程的地址空间。因此,创建一个新的进程时就要耗费时间来为其分配系统资源,而创建一个线程花费的时间要少的多。
  • 在系统调度方面,由于进程地址空间独立而线程共享地址空间,线程间的切换速度要远快过进程间的切换速度。
  • 在通信机制方面,进程间的数据空间相互独立,彼此通信要以专门的通信方式进行,通信时必须经过操作系统。而同一进程内的多个线程共享数据空间,一个线程的数据可以直接提供给其他线程使用,而不必经过操作系统。因此线程间的通信更加方便省时。
  • 线程可以提高应用程序的响应速度。在图像界面程序中,如果有一个非常耗时的操作,她会导致其他操作不能进行而等待这个操作,此时界面响应用户操作的速度会变得很慢。多线程环境下可以将这个非常耗时的操作由一个单独的线程来完成。这个线程在用完操作系统分配给他的时间片后,让出CPU,这样其他的操作便有机会执行了。
  • 可以提高多处理器的效率。现在许多计算机都是采用多核技术,在这种情况下,可以让多个线程在不同的处理器上同时运行,从而大大提高程序执行速度。因此,多线程更能发挥硬件的潜力。
  • 可以改善程序的结构。对于要处理多个命令的应用程序,可以将对每个命令的处理设计成一个线程,从而避免设计成大程序时造成的程序结构复杂。

二、创建线程

  •  线程创建函数pthread_create

#include <pthread.h>
int pthread_create(pthread_t *thread,pthread_attr_t *attr,
(void*)(*start_routine)(void*),void *arg);
  1. thread:该参数是一个指针,当线程创建成功时,用来返回创建的线程ID。
  2. attr:该参数用于指定线程的属性,NULL表示使用默认属性,稍后将介绍该数据结构。
  3. start_routine:该参数为一个函数指针,指向线程创建后要调用的函数。这个被线程调用的函数也称为线程函数。
  4. arg:该参数指向传递给线程函数的参数。
  • 线程创建成功时,pthread_create函数返回0,若不为0则说明创建线程失败。线程创建成功后,新创建的线程开始运行第三个参数所指向的函数,原来的线程继续运行。
  • pthread.h中其他的系统调用

                              
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值