文章目录
1 并发、进程、线程的基本概念和综述
**并发、进程、线程**
1 并发:
两个或者更多的任务同时发生、同时进行;一个程序同时执行多个独立的任务
在计算机只有单核cpu的时候,某一个时刻只能执行一个任务,但是可以根据分时轮转并行实现
由操作系统调动以每秒钟为单位,进行任务切换
计算机发展多核:实现硬件的并发
1.2 可执行程序:
硬盘上的一个文件,windows下为exe linux下ls -ls rwxrwxrwx(x执行权限)
1.3 进程:进程就是一个可执行程序运行起来,就是创建了一个进程
linux下就是./文件名 ./a
进程是操作系统的调度单位
1.4 线程:
每个进程就是执行起来的可执行程序,每个进程都有一个主线程,主线程是自带的唯一的
当你执行一个可执行程序,产生进程后,主线程随着进程一起启动
实际上运行程序的时候,是进程的主线程来执行(调用)main函数的代码
主线程的寿命是跟随着线程的,唇齿相依
线程:用来执行代码
线程:理解成执行代码的一条道路
除了主线程之外,我们可以通过自己写代码来创建其他线程,其他线程走哦的是别的道路不同的地方
每创建一个新线程,可以在同一个时刻,多干一个不同的事情
多线程是并发的,线程并不是越多越好,每个线程需要一个独立的堆栈空间 .线程之间的上下文切换需要缓存很多中间状态,耗费cpu,故而线程不是越多越好
总结线程:线程用于代码的执行
线程是执行代码的一条通路,一条新的道路
每个进程包含一个主线程,主线程随着进程的启动默默运行
可以使用代码创建其他线程,但是创建的数量不建议超过200-300个,至于多少个要不断调试和优化
主线程是自动启动的,一个进程中至少有一个线程
1.5 学习心得:
开发多线程程序;网络通讯、服务器,线程必须得学
并发的实现方法:
两个或者多个任务同时执行
并发的手段:
1 我们通过多个进程实现并发
2 在单独的进程中创建多个线程,实现并发
多进程并发:
word是进程,ie是进程
账号服务器 游戏逻辑服务器。服务器进程之间的通信
进程之间的通信(同一个电脑上,可以通过管道、文件、消息变量、共享内存去通信)
进程之间的通信(不在同一个电脑):socket通信技术
多线程并发:在单个进程中创建了多个线程
线程:比较类似于轻量级的进程,每个线程有自己的独立运行路径
多个线程共享进程的内存,全局变量、指针、引用等都可以在线程之间传递
共享内存带来新的问题:数据一致性问题
线程A线程B要怎么写数据保证数据的一致性,关于互斥和共享