线程
如何实现用户级线程?
时延、吞吐量
“网络带宽很快”指的是吞吐量很大。
“水龙头水打开”水流的速度指的是时延。
“水龙头的水每秒流的总量”指的是吞吐量。
一般好提高的是吞吐量,时延一般不好提高。
线程池或者进程池:好处是控制资源的使用,避免了创建线程或者进程时资源不足的问题。
线程池/进程池是提前把线程和进程创建好,在使用的时候不用临时创建,避免了资源不足的问题。
并行和并发的程序设计:
性能遵循摩尔定律,每年翻一倍性能,提高的方式有:主频(但是2007年的时候发热太严重了)、增加晶体管的数量。
并发程序设计:
并发线程/进程、异步(Asynchronous)、同步(Synchronous)、独立(Independent)、并行
当两个并行/并发的线程或者进程不能并行的时候,可以直接两个进行串行执行。
临界资源:互斥执行
临界区
每一个核都有它自己的临界区。
讨论:
自选锁
旋转锁(Spin locks)
优先级反转:
信号量:用于进程或者线程的同步。
消息邮箱(只能放一条消息)、消息队列(可以放多条消息)进行通信。
操作系统层面是粗粒度并行,大数据层面是细粒度并行。
参考链接:https://blog.csdn.net/qq_28133013/article/details/105286333