多线程

简介: 多线程

1.介绍

多线程是指在一个程序中同时运行多个线程来完成不同的任务。每个线程都有自己的指令指针、寄存器和栈,但是它们共享同一个地址空间和其他资源,如打开的文件和全局变量

C++11 引入了对多线程的支持,包括 std::thread 类和相关的同步原语,如 std::mutexstd::condition_variable。使用这些类和函数,可以在 C++ 程序中创建和管理多个线程

2.例子

下面是一个简单的示例,演示如何在 C++ 中创建和使用多个线程:

#include <iostream>
#include <thread>
void print(int n) {
    for (int i = 0; i < n; ++i) {
        std::cout << "Hello from thread " << std::this_thread::get_id() << std::endl;
    }
}
int main() {
    std::thread t1(print, 3);
    std::thread t2(print, 5);
    t1.join();
    t2.join();
    return 0;
}

在这个示例中,我们定义了一个 print() 函数,它接受一个整数参数 n,并输出 n 行文本。在 main() 函数中,我们创建了两个线程 t1t2,它们分别执行 print(3)print(5)。然后我们调用 join() 方法来等待两个线程结束。

这段代码的一个可能的输出结果是:

Hello from thread 1
Hello from thread 1
Hello from thread 1
Hello from thread 2
Hello from thread 2
Hello from thread 2
Hello from thread 2
Hello from thread 2

或者

Hello from thread 2
Hello from thread 2
Hello from thread 2
Hello from thread 2
Hello from thread 2
Hello from thread 1
Hello from thread 1
Hello from thread 1

具体的输出顺序取决于线程的调度顺序,这是不确定的

相关文章
|
7月前
|
安全 Java 调度
|
8月前
65.【 多线程2】(三)
65.【 多线程2】
30 0
|
6天前
|
安全 Java C#
C#多线程详解
C#多线程详解
14 0
|
6天前
|
Unix Linux 编译器
c++多线程
c++多线程
25 0
|
6天前
|
前端开发 Java
|
6天前
|
C#
[C#] 多线程的使用
[C#] 多线程的使用
18 0
|
7月前
|
Java
多线程
java多线程是指在程序中并发执行多个指令流,每个指令流都称为一个线程,彼此间互相独立。Java中所有变量都储存在主存中,对于所有线程都是共享的。Java中的多线程可以通过继承Thread类或者实现Runnable接口来创建,然后通过start()方法来启动线程。Java中的多线程可以提高程序的并发性和执行效率。
|
9月前
|
安全 Linux C++
C++多线程实现
C++11支持语言级别的多线程编程,可以跨平台运行,支持windows/linux/mac等。
86 0
|
10月前
|
Linux 调度
多线程具体实现(上)
多线程具体实现
54 0
|
缓存 安全 Java
多线程具体实现
多线程具体实现