zoukankan      html  css  js  c++  java
  • 面试第一次

    线程:

    线程(thread)是操作系统能够进行运算调度的最小单位。它被包含在进程之中,是进程中的实际运作单位。一条线程指的是进程中一个单一顺序的控制流,一个进程中可以并发多个线程,每条线程并行执行不同的任务。线程拥有自己独立的栈和共享的堆,共享堆,不共享栈,线程亦由操作系统调度。使用多线程技术,也可以把进程中负责I/O处理。同一进程中的多个线程有各自的调用栈(call stack),自己的寄存器环境(register context),自己的线程本地存储(thread-local storage)

    什么是多线程?多线程是指程序中包含多个执行流,即在一个程序中可以同时运行多个不同的线程来执行不同的任务,也就是说允许单个程序创建多个并行执行的线程来完成各自的任务。多线程的好处:可以提高CPU的利用率。在多线程程序中,一个线程必须等待的时候,CPU可以运行其它的线程而不是等待,这样就大大提高了程序的效率。

    # 进程

    进程拥有自己独立的堆和栈,既不共享堆,亦不共享栈,进程由操作系统调度。

    # 协程和线程的区别

    协程:单线程实现并发

    协程避免了无意义的调度,由此可以提高性能;但同时协程也失去了线程使用多CPU的能力。

    池:类似于一个缓冲地带,保证计算机硬件安全的前提下提高程序的执行效率

    多进程:密集cpu任务,需要充分使用多核CPU资源(服务器,大量的并行计算)的时候,用多进程
    缺陷:多个进程之间通信成本高,切换开销大

    多线程:密集IO任务(网络IO,磁盘I/O,数据库I/O)使用多线程合适。
    缺陷:同一个时间切片只能运行一个线程,不能做到高并行,但是可以做到高并发

    协程:当程序中存在大量不需要CPU的操作时(IO),适用于协程
    缺陷:单线程执⾏,处理密集CPU和本地磁盘IO的时候,性能较低。处理⽹络I/O性能还是⽐较⾼.

  • 相关阅读:
    文档重复检测软件 DuplicateDetector
    Afinal 0.2.1 发布 Android的快速开发框架
    CshBBrain 4.0 发布,高性能WebSocket服务器
    英特尔的 C++ 编译器发布 13.0 版本
    Perl 5.16.2 发布
    OpenBSD 5.2 发布
    Webconverger 15.1 发布,适合网吧的 Linux
    Spring Framework 3.2 RC1 发布
    Postgres 9.2 新特性之:范围类型 (Range Types)
    Expression Blend实例中文教程系列文章汇总
  • 原文地址:https://www.cnblogs.com/heruxiu/p/13495479.html
Copyright © 2011-2022 走看看