Windows多线程编程是现代软件技术中一个很重要的环节。当然,要弄懂多线程,这肯定要牵涉到多进程;那么,要了解多进程,就要涉及操作系统。
(1)单CPU下的多线程
在没有出现多核CPU之前,我们的计算资源是唯一的。如果系统有多个任务要处理的话,那么就需要按照某种规则依次调度这些任务进行处理。那么,又是什么规则呢?可以是一些简单的调度方法,比如:
按照优先级调度.
按照FIFO调度.
按照时间片调度等等.
当然,除了CPU资源外,系统中还有其他的资源需要共享(比如:内存、文件、端口等)。又如前文所提到系统中的资源是有限的,那么获取这些资源的最小单元体是什么呢,那就是进程。
假设是两个进程之间数据传输,那么需要如果需要对共享数据进行访问需要哪些步骤呢,
1)创建共享内存.
2)访问共享内存->系统调用->读取数据.
3)写入共享内存->系统调用->写入数据.
(1)单CPU下的多线程
在没有出现多核CPU之前,我们的计算资源是唯一的。如果系统有多个任务要处理的话,那么就需要按照某种规则依次调度这些任务进行处理。那么,又是什么规则呢?可以是一些简单的调度方法,比如:
按照优先级调度.
按照FIFO调度.
按照时间片调度等等.
当然,除了CPU资源外,系统中还有其他的资源需要共享(比如:内存、文件、端口等)。又如前文所提到系统中的资源是有限的,那么获取这些资源的最小单元体是什么呢,那就是进程。
假设是两个进程之间数据传输,那么需要如果需要对共享数据进行访问需要哪些步骤呢,
1)创建共享内存.
2)访问共享内存->系统调用->读取数据.
3)写入共享内存->系统调用->写入数据.
大家看下面的代码:
#include <unistd.h>
#include <stdio.h>
int value = 10;
int main(int argc, char* argv[])
{
int pid = fork();
if(!pid){
Value = 12;
return 0;
}