操作系统(3) 多处理器编程:从入门到放弃
入门:理解多线程
三个放弃:原子性、有序性、可见性
并发:介绍
进程与线程的区别:
- 进程:正在运行的程序,系统分配资源和调度的基本单位,内存中可以同时加载多个进程,每个进程都有自己独立的地址空间,互相不会干扰。每个一段时间,进程间会发生上下文切换,进程发生切换,信息会保存再进程控制块(PCB)中
- 线程:线程是操作系统能够进行运算调度的最小单位。它被包含在线程中,是线程中的实际运作单位。一个进程内可以有多个线程,每个线程共享内存,但有独立的堆栈。多个线程之间也会发生上下文切换,但地址空间保持不变。
线程的创建:
#include <stdio.h>
#include <assert.h>
#include <pthread.h>
void *mythread(void *arg){
printf("%s\n", (char*)arg);
return NULL;
}
int main(int argc, char* argv[]){