day9--多线程与多进程

    线程:

    什么是线程?

线程是操作系统能够进行运算调度的最小单位。它被包含在进程之中,是进程中的实际运作单位。一条线程指的是进程中一个单一顺序的控制流,一个进程中可以并发多个线程,每条线程并行执行不同的任务

每一个程序的内存是独立的,互相不能直接访问。

    进程:

以一个整体的形式暴露给操作系统管理,里面包含对各种资源的调用,内存的对各种资源管理的集合就可以称为进程。进程本身是不可以执行的,只是一堆指令,操作系统是线程执行的。

表面看进程在执行,其实是线程在执行,一个进程至少包含一个线程。

线程:线程就是可执行的上下文,CPU执行所需要的最小单位。CPU只负责运算。单核的CPU同时只能做一件事情,为什么我们可以切换各种程序,是由于CPU的执行速度很快,在来回切换,让我们看起来程序是执行多个进程。

操作系统通过PID,进程ID来区分进程。进程标识符,PID。进程能够设置优先级。

线程是有主线程创建的,primary thread;能够一直创建新的线程,Linux操作系统有一个主线程。

    线程和进程的区别:

线程和进程比快是没有可比性的。

1、线程共享内存空间,进程的内存是独立的;

2、同一个进程的线程之间可以直接交流,两个进程想通信,必须通过一个中间代理来实现;

3、新的线程容易创建,创建新线程需要对其父进程进行一次克隆;(parent process)

4、一个线程可以控制和操作同一进程里的其他线程,但是进程只能操作子进程;

5、线程之间数据可以交流,进程之间是不允许数据交流的。

时间: 2024-10-24 00:40:08

day9--多线程与多进程的相关文章

多线程和多进程的区别与联系

1.单进程单线程:一个人在一个桌子上吃菜.2.单进程多线程:多个人在同一个桌子上一起吃菜.3.多进程单线程:多个人每个人在自己的桌子上吃菜. 多线程的问题是多个人同时吃一道菜的时候容易发生争抢,例如两个人同时夹一个菜,一个人刚伸出筷子,结果伸到的时候已经被夹走菜了...此时就必须等一个人夹一口之后,在还给另外一个人夹菜,也就是说资源共享就会发生冲突争抢. 1.对于 Windows 系统来说,[开桌子]的开销很大,因此 Windows 鼓励大家在一个桌子上吃菜.因此 Windows 多线程学习重点

编程思想之多线程与多进程(2)——线程优先级与线程安全

原文:http://blog.csdn.net/luoweifu/article/details/46701167 作者:luoweifu 转载请标名出处 <编程思想之多线程与多进程(1)--以操作系统的角度述说线程与进程>一文详细讲述了线程.进程的关系及在操作系统中的表现,这是多线程学习必须了解的基础.本文将接着讲一下线程优先级和线程安全. 线程优先级 现在主流操作系统(如Windows.Linux.Mac OS X)的任务调度除了具有前面提到的时间片轮转的特点外,还有优先级调度(Prior

线程、进程、多线程、多进程

http://blog.csdn.net/lishenglong666/article/details/8557215 线程进程的联系和区别 定义: 进程是程序在计算机上的一次执行活动,是系统进行资源分配和调度的一个独立单位:  线程是进程的一个实体,是cpu调度和分派的基本单位,他是比进程更小的能独立运行的基本单位:线程自己基本上不拥有系统资源,只用有点在运行中必不可少的资源(如程序计数器,一组寄存器和栈),一个线程可以创建和撤销另一个线程: 线程与进程的关系: 1)     一个线程只能属于

老男孩教育每日一题-2017年3月23日-请问多线程与多进程的区别,在什么时候用线程或进程更合适?

解答: 进程: 优点:多进程可以同时利用多个CPU,能够同时进行多个操作. 缺点:耗费资源(创建一个进程重新开辟内存空间). 进程不是越多越好,一般进程个数等于cpu个数. 线程: 优点:共享内存,尤其是进行IO操作(网络.磁盘)的时候(IO操作很少用cpu),可以使用多线程执行并发操作. 缺点:抢占资源. 线程也不是越多越好,具体案例具体分析,切换线程关系到请求上下文切换耗时. 计算机中执行任务的最小单元:线程. IO密集型(不用cpu):多线程 计算密集型(用cpu):多进程 网友精品回答:

c++的多线程和多进程

一.多进程和多线程对比 多进程:进程不止一个,开销比较大,通信方式比较复杂(可以用过管道.文件.消息队列进行通信),维护成本不高. 多线程:利用共享内存的方式进行指令的执行,开销比较低,但是维护起来比较麻烦,需要考虑到共享资源的问题.不支持分布式运算. 二.多线程举例 #include "iostream.h" #include "thread.h" using namespace std; void function() { cout<<"h

编程思想之多线程与多进程(4)——C++中的多线程

<编程思想之多线程与多进程(1)--以操作系统的角度述说线程与进程>一文详细讲述了线程.进程的关系及在操作系统中的表现,<编程思想之多线程与多进程(2)--线程优先级与线程安全>一文讲了线程安全(各种同步锁)和优先级,这是多线程学习必须了解的基础.本文将接着讲一下C++中多线程程序的开发.这里主要讲Windows平台线程的用法,创建线程要调用windows API的CreateThread方法. 创建线程 在Windows平台,Windows API提供了对多线程的支持.前面进程和

编程思想之多线程与多进程(2)——Java中的多线程

原文:http://blog.csdn.net/luoweifu/article/details/46673975 作者:luoweifu 转载请标名出处 <编程思想之多线程与多进程(1)--以操作系统的角度述说线程与进程>一文详细讲述了线程.进程的关系及在操作系统中的表现,这是多线程学习必须了解的基础.本文将接着讲一下Java中多线程程序的开发 单线程 任何程序至少有一个线程,即使你没有主动地创建线程,程序从一开始执行就有一个默认的线程,被称为主线程,只有一个线程的程序称为单线程程序.如下面

几种并发服务器模型的实现:多线程,多进程,select,poll,epoll

#include <stdio.h> #include <stdlib.h> #include <string.h> #include <unistd.h> #include <errno.h> #include <sys/types.h> #include <sys/stat.h> #include <sys/socket.h> #include <arpa/inet.h> #include &q

Python多线程和多进程谁更快?

python多进程和多线程谁更快 python3.6 threading和multiprocessing 四核+三星250G-850-SSD 自从用多进程和多线程进行编程,一致没搞懂到底谁更快.网上很多都说python多进程更快,因为GIL(全局解释器锁).但是我在写代码的时候,测试时间却是多线程更快,所以这到底是怎么回事?最近再做分词工作,原来的代码速度太慢,想提速,所以来探求一下有效方法(文末有代码和效果图) 这里先来一张程序的结果图,说明线程和进程谁更快 一些定义 并行是指两个或者多个事件

单线程、多线程、多进程、协程比较,以爬取新浪军事历史为例

演示python单线程.多线程.多进程.协程 1 import requests,json,random 2 import re,threading,time 3 from lxml import etree 4 5 lock=threading.Lock() 6 semaphore=threading.Semaphore(100) ###每次限制只能100线程 7 8 user_agent_list = [ 9 "Mozilla/5.0 (Windows NT 6.1; WOW64) Appl