1. 基础概念
1) 什么是进程和线程
进程是程序运行资源分配的最小单位 , 进程与进程之间是相互独立的 , 进程可以分为系统进程和用户进程 , 系统进程就是完成操作系统的功能(操作系统本身) , 用户进程就是用户自己启动的进程。
线程是CPU调度的最小单位 , 必须依赖进程而存在 。线程是进程的一个实体 ,可以与同属一个进程的其它线程共享进程所拥有的全部资源。线程是无处不在的任何一个程序都必须要创建线程。
2)并行与并发
并行:指应用能同时执行不同的任务。
并发:指应用能够交替执行不同的任务。只是CPU在以我们察觉不到速度切换,谈论并发一定要加上时间段,不然没有意义
3)CPU核心数与线程数的关系
多核心:也指单芯片多处理器( Chip Multiprocessors,简称CMP),CMP是由美国斯坦福大学提出的,其思想是将大规模并行处理器中的SMP(对称多处理器)集成到同一芯片内,各个处理器并行执行不同的进程。这种依靠多个CPU同时并行地运行程序是实现超高速计算的一个重要方向,称为并行处理
多线程: Simultaneous Multithreading.简称SMT.让同一个处理器上的多个线程同步执行并共享处理器的执行资源。
核心数、线程数:目前主流CPU都是多核的。增加核心数目就是为了增加线程数,因为操作系统是通过线程来执行任务的,一般情况下它们是1:1对应关系,也就是说四核CPU一般拥有四个线程。但 Intel引入超线程技术后,使核心数与线程数形成1:2的关系
4)CPU时间片轮转机制
时间片轮转调度是一种最古老、最简单、最公平且使用最广的算法,又称RR调度。每个进程被分配一个时间段,称作它的时间片,即该进程允许运行的时间。在开发中并没有感觉受到查CPU核心数的限制就是因为时间片轮转机制。
5)高并发编程的意义,好处和注意事项
1.充分利用CPU的资源
2.加快用户的响应速度
3.可以使代码模块化 , 异步化 , 简单化
注意事项
1.线程之间的安全性 , 在同一个进程里面多线程是资源共享的 , 如果多个线程同时对一个变量执行写的操作就需要考虑线程同步 , 否则可能影响线程安全.
2.线程之间的死锁 , 不同的线程等待不可能释放的锁从而导致所有工作都无法完成 .
3.线程太多了会将服务器资源耗尽形成死机当机
本文介绍了多线程与并发编程的基础概念。阐述了进程和线程的定义,并行与并发的区别,以及CPU核心数与线程数的关系、时间片轮转机制。还说明了高并发编程的意义、好处,如充分利用CPU资源、加快响应速度等,同时提醒要注意线程安全、死锁和资源耗尽等问题。
4280

被折叠的 条评论
为什么被折叠?



