【C++】多线程(thread)使用详解

慈云数据 6个月前 (05-11) 技术支持 47 0

目录

  • 一、前言
    • 1. 多线程的含义
    • 2. 进程与线程的区别
    • 二、创建线程
      • 1. thread
      • 2. join() 和 detach()
      • 3. this_thread
      • 三、std::mutex
        • 1. lock() 与 unlock()
        • 2. lock_guard
        • 3. unique_lock
        • 四、condition_variable
        • 五、std::atomic
          • 如果这篇文章对你有所帮助,渴望获得你的一个点赞!

            一、前言

            1. 多线程的含义

            多线程(multithreading),是指在软件或者硬件上实现多个线程并发执行的技术。具有多核CPU的支持的计算机能够真正在同一时间执行多个程序片段,进而提升程序的处理性能。在一个程序中,这些独立运行的程序片段被称为“线程”(Thread),利用其编程的概念就叫作“多线程处理”。

            2. 进程与线程的区别

            进程是指一个程序的运行实例,而线程是指进程中独立的执行流程。一个进程可以有多个线程,多个线程之间可以并发执行。

            • 一个程序有且只有一个进程,但可以拥有至少一个的线程。
            • 不同进程拥有不同的地址空间,互不相关,而不同线程共同拥有相同进程的地址空间。

              二、创建线程

              1. thread

              C++支持多线程编程,主要使用的是线程库。

              示例1: 创建线程使用std::thread类

              #include 
              #include     //必须包含头文件
              void threadFunctionA()
              {
              	std::cout 
              	std::cout 
              	std::cout 
              	arg1 = arg2;
              	std::cout 
              	std::cout 
              	std::cout 
              	std::thread t(foo);
              	if (t.joinable())
              	{
              		t.join();  		// 等待线程t执行完毕
              		// t.detach();  // 分离线程t与主线程
              	}
              	std::cout 
              	std::cout 
              		std::cout 
              	std::cout 
              	for (int i = 0; i 
微信扫一扫加客服

微信扫一扫加客服

点击启动AI问答
Draggable Icon