zoukankan      html  css  js  c++  java
  • 进程和线程的定义及区别

    什么是进程,什么是线程

    系统要做一件事,运行一个任务,所有运行的任务通常就是一个程序;

    每个运行中的程序就是一个进程,这一点在任务管理器上面可以形象的看到。

    当一个程序运行时,内部可能会包含多个顺序执行流,每个顺序执行流就是一个线程。


    关于进程的特性

    独立性:进程是系统中独立存在的实体,它可以拥有自己独立的资源,每个进程都拥有自己私有的地址空间。在没有经过进程本身运行的情况下是不能访问其中的内容的。

    动态性:进程与程序的区别在于,程序是静态的,进程是动态的。程序只是一个静态的指令集合,而进程是一个正在系统中运行的指令集合。有了时间的概念,如生命周期;

    并发性:进程之间,交替着执行。


    线程,一个顺序执行流;

    它是进程的组成部分,一个进程可以有多个线程。


    关于线程的特性,或是它的优势

    1、进程之间不能共享内存,单线程之间共享内存非常的容易

    2、系统创建进程需要为该进程重新分配系统资源,但创建线程的代价很小。因此多线程的实现多任务并发比多进程实现并发的效率高

    3、Java语言内置多线程功能支持,而不是单纯的作为底层操作系统的调度方式


    总结:

    一个程序运行至少一个进程,一个进程里面至少包含一个线程,线程是进程的组成部分。

    线程相对于进程而言,很强大了,做到了资源的共享,资源的损耗降低,人为的手工控制程序的运行。

  • 相关阅读:
    hadoop生态--ElasticSearch--ES操作
    Haoop生态--ElasticSeaarch(1)--ES预备知识(全文检索的概念、Lucence、倒排索引)
    hadoop生态--Hive(2)--Hive的使用方式
    hadoop生态--Zookeeper
    gsoap使用
    set容器
    如何杀死defunct进程
    关于多态
    数组类型与函数指针基本语法知识
    syslog日志
  • 原文地址:https://www.cnblogs.com/blog4matto/p/5584829.html
Copyright © 2011-2022 走看看