zoukankan      html  css  js  c++  java
  • C++多线程基础学习笔记(一)

    下面分三个方面多线程技术的必须掌握一些基本知识。

    1.进程

    2.线程

    3.并发

    (1)进程

    一个可执行程序运行起来了,即为创建了一个进程。如在电脑上打开了word,就创建了一个word进程,打开QQ,又创建了一个QQ进程。

    可以在任务管理器中----->用户中查看进程。

    不同的进程之间的通信方式有:管道、消息队列、共享内存、信号量(同一台电脑),socket(支持不同电脑)。

    (2)线程

    1.线程可理解成一条代码执行的通道

    2.线程与进程之间的关系:

    同一个进程允许有多个线程;

    同一个进程的每个线程都有独立的堆栈空间;

    一个进程只有一个主线程,主线程随着进程的开始而开始,结束而结束;(例如我们在运行一个简单的打印"hello world"程序时,实际上时进程的主线程来执行main函数中的打印”hello world"代码)

    一个进程中的所有线程共享内存,全局变量、指针、引用都可以在线程之间传递,这也是多线程技术性能高的原因,但同时也带来了数据性一致的问题;(例如线程A和线程B同时对同一块内存写入数据,那么可能出现问题)

    (3)并发

    两个或多个任务同时进行,包括多进程并发,多线程并发。

    其他:

    多线程技术是为了减少上下文切换的开销时间,提高性能,但是并不是线程越多越好;

    C++11新标准中,C++语言本身增加了多线程的支持,这意味着代码可移植(跨平台)。

  • 相关阅读:
    iOS
    UI基本视图控制
    堆和栈的区别 ?
    单例模式
    Object-c的类可以多重继承么?可以实现多个接口么?Category是什么?重写一个类的方式用继承好还是分类好?为什么?
    id
    协议
    分类(类别)
    #import和#include以及@class三者的区别?
    内存管理
  • 原文地址:https://www.cnblogs.com/main404/p/11143613.html
Copyright © 2011-2022 走看看