C++ Thread
来源:互联网 发布:mamp mysql 启动失败 编辑:程序博客网 时间:2024/05/19 04:28
本博客转自:https://originals-tz.github.io/
由于不同平台下所使用的API不同,因此分两篇介绍Windows和Linux下多线程的使用
0x00 介绍
一.进程
首先来看进程,它是一个正在运行的程序的实例,是一个程序在其自身的地址空间的一次执行活动。进程是资源申请、调度、和独立运行的基本单位。进程有两部分组成:
1操作系统用来管理进程的内核对象,内核对象是系统用来存放关于进程的统计信息的地方,它是操作系统内部分配的一块内存块,该内存块是一种数据结构,其成员负责维护该对象的各种信息。
2地址空间,它包含所有可执行模块、dll模块的代码和数据,也包含动态内存分配的空间。
二.线程
真正完成代码执行的是线程,而进程只是线程的容器,或者说是线程的执行环境。
每个进程至少拥有一个线程,来执行进程的地址空间的代码。当创建一个进程时,操作系统自动创建该进程的第一个线程,称为主线程,也就是执行main或WinMain函数的线程,也可以把main或WinMain函数看作是主线程的进入点函数,然后主线程可以创建其他线程。
线程由两部分组成:
1线程的内核对象,操作系统用它来对线程实施管理,内核对象是系统用来存放关于线程的统计信息的地方
2线程栈,它用于维护线程在执行代码时需要的所有函数参数和变量。
std::thread
#include <thread>#include <iostream>using namespace std;int i = 0;void add() { i++; for(int z = 0; z < 10; z++) cout << "add:" << i << endl;}void minuss() { i--; for(int v = 0; v < 10; v++) cout << "minus:" << i << endl;}int main() { thread a(add); thread b(minuss); a.join(); b.join(); cout << "finish the job" << endl; return 0;}
详情请看这里
阅读全文
0 0
- Thread(C#)
- c thread
- thread.c
- something about thread(c#)
- linux + thread + c (一)
- C#Thread的使用
- 【c++】线程thread类
- c++thread学习(1)
- C++/MFC-线程Thread
- C++:线程(std::thread)
- C#--理解Thread.Sleep函数
- C#--理解Thread.Sleep函数
- 4.多线程实例:thread.c
- 4.多线程实例:thread.c
- C#Thread类—多线程
- C 的 Thread Pool 筆記
- Linux线程的thread.c
- C#Thread的Join方法
- Servlet处理乱码问题
- hadoop的分组
- Python urllib的urlretrieve()函数解析Python的爬虫函数
- java笔记第九课(形式参数返回值&内部类)
- Hibernate中一对一映射详细解析(内含实例)
- C++ Thread
- 【POJ 3667】 hotel 【线段树 +区间操作+区间合并】
- 第一章-问答题
- 回溯——哈密顿回路问题
- Lintcode150 Best Time to Buy and Sell Stock II solution 题解
- 从CNN视角看在自然语言处理上的应用 原创 2017年10月24日 00:00:00 1339 作者 | 卞书青 卷积神经网络(Convolutional Neural Network)最早是应用在
- 今天几乎没有收获
- 堆和栈的区别
- Python 3.6 爬虫爬取豆瓣《孤芳不自赏》短评