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++语言本身增加了多线程的支持,这意味着代码可移植(跨平台)。

  • 相关阅读:
    基于antlr的表达式解析器
    ANTLR语法层的选项及动作
    Understanding ANTLR Grammar Files
    写给Git初学者的7个建议
    Top 8 Diagrams for Understanding Java
    技术面不深入
    一个初级程序员学习新技术的策略
    SoftReference,WeakReference&WeakHashMap
    探索Antlr(Antlr 3.0更新版)
    Five minute introduction to ANTLR 3
  • 原文地址:https://www.cnblogs.com/main404/p/11143613.html
Copyright © 2011-2022 走看看