线程知识概览

作者: 天天向上卡索 | 来源:发表于2018-07-18 13:44 被阅读7次

线程知识概览

Intro

20世纪60年代人们提出了进程的概念,到20世纪80年代中期人们提出了比进程更小的能独立运行的基本单位——线程,试图用它来提高系统内程序并发执行的程度从而进一步提高系统的吞吐量。

线程具有传统进程所具有的特征,所以称之为轻型进程或进程元,相应的把传统进程称之为重型进程。
一个进程可以拥有若干个线程,至少一个。

线程的属性

  1. 轻型实体
  2. 独立调度和分派的基本单位
  3. 可并发执行
  4. 共享进程资源

进程与线程的比较

  1. 调度

    进度是资源分配的基本单位,线程是调度和分派的基本单位,线程几乎不拥有系统资源更轻量级,能显著提高系统的并发程度。

    在同一个进程中,线程的切换不会引起进程的切换。但从一个进程中的线程切换到另外一个进程中的线程时会引起进程的切换。

  2. 并发行

    进程和线程都可以并发执行,这使得操作系统具有良好的并发性,从而能够更加有效的提高系统资源的利用率和系统的吞吐量。引入线程使得系统具体更好的并发性

  3. 资源

    进程是拥有资源的基本单位,线程几乎不拥有系统资源,但是可以访问它隶属的进程的资源,进程的资源可以供该进程下的所有线程所共享

  4. 系统开销

    创建或撤销进程时,系统都要为之创建和回收进程控制块,分配和回收资源如内存空间和I/O设备等,操作系统所付出的开销明显大于线程创建或撤销时的开销。

    进程的切换也会比线程的切换更费时,进程切换的代价比线程切换要高。

    一个进程中的多个线程具有相同的地址空间,在同步和通信的实现方面也比进程容易。

线程间的同步

  1. 互斥锁(mutex)
  2. 条件变量
  3. 信号量
    • 私用信号量(同一进程内线程同步,进程内可见OS不知道,OS不会自动回收未释放的信号量)
    • 公用信号量(不同进程间线程同步,OS会自动回收未释放的信号量,较安全)

相关文章

  • 线程知识概览

    线程知识概览 Intro 20世纪60年代人们提出了进程的概念,到20世纪80年代中期人们提出了比进程更小的能独立...

  • iOS-网络多线程文集目录

    多线程概览pthreadNSThreadGCDNSOperation SDWebImage库 运行循环概览CFRu...

  • qt-线程分析

    线程概览 使用线程 The QThread class provides a platform-independe...

  • 从Guarded Block来看Java中的wait和notif

    预备知识 Java线程的生命周期 概览 本文探究一下Java最基础的机制之一:线程同步我们先讨论一些并发相关的术语...

  • 多线程概览

    一. 创建多线程的方式 1. 继承Thread类 实现步骤: 自定义类继承Thread类 重写run方法 创建类对...

  • iOS性能篇——并行开发其实很简单

    概览 1.多线程 1.1 简介 1.2 iOS 多线程 2.NSThread 2.1 解决多线程阻塞问题 2.2 ...

  • Java 线程:创建、属性以及状态控制

    前言 本文将对 Java 线程 Thread 进行学习和总结,以下是概览: 一、Thread 创建 线程的创建主要...

  • 线程池总结

    1.概览 功能简介: ThreadPoolExecutor就是普通的线程池。 ScheduledThreadPoo...

  • 线程池核心ThreadPoolExecutor原理

    1.线程池概览 线程池主要用于线程资源的管理,防止频繁的创建以及销毁线程,提升资源的利用率。JDK中的线程池实现,...

  • iOS 多线程技术总结

    概览 进程与线程的概念 多线程的由来 并行与并发 多线程的实现 串行与并行 线程的几种状态 串行队列与并发队列区别...

网友评论

    本文标题:线程知识概览

    本文链接:https://www.haomeiwen.com/subject/pjyopftx.html