工作这么久了,还不懂多线程吗?

简介: 浩哥Java多线程整理学习系列之01基础知识整理
浩哥Java多线程整理学习系列之01 基础知识整理

在这里插入图片描述

浩哥Java多线程整理学习系列之01基础知识整理

1. 如何查看电脑核数及线程数

右击任务栏→任务管理器
可以看到内核数(物理核心数)和逻辑处理数。
image.png
其中CPU核心数和线程数是一对一的关系,
逻辑处理器的个数就是虚拟出来的,采用多核技术。

Linux查询CPU核心数

# 查询物理cpu核心数
cat /proc/cpuinfo| grep "cpu cores"| uniq

# 逻辑核数
cat /proc/cpuinfo| grep "processor"| wc -l

在这里插入图片描述

2. 线程和进程、协程之间的区别

进程:操作系统分配资源(CPU、内存、磁盘等)的最小单位,进程内可有多个线程并共享这个进程的资源。可以想象成是一个应用,比如谷歌浏览器。
线程:CPU调度的最小单位,负责进程的执行。可以想象成谷歌浏览器打开的网页,一个网页一个线程。
协程:一种比线程更小的存在,为了节省系统切换开销提高性能。

3. 时间片轮转(RR)调度算法

专门为分时系统设计的调度算法,增加了抢占式切换进程,于是就有了上下文切换问题。
进程/线程上下文切换会用掉你多少CPU?

4. 并行和并发的区别

需要用时间来衡量。
并行(Parallelism):同一时刻同时处理任务的能力。比如我多核CPU,多个应用一起处理。
image.png

并发(Concurrency):单位时间内完成任务的能力。比如1ms内CPU来回切换QQ和浏览器,使之感觉同时在运行。
这里就是采用上下文来回切换了。
image.png

5. 系统限制线程数

因为新建线程需要消耗CPU和内存资源,所以都要限制。
Linux限制最大线程数:
会根据实际物理机的资源而定。
image.png

Windows限制最大线程数:
image.png

6. 并发的优缺点

优点:充分利用CPU多核资源、提高程序响应时间、异步化执行任务。
缺点:逻辑控制复杂、容易产生死锁、线程管理问题。

目录
相关文章
|
7月前
|
安全 Java 编译器
多线程(看这一篇就够了,超详细,满满的干货)
多线程(看这一篇就够了,超详细,满满的干货)
68 2
|
安全 算法 Java
去某东面试遇到并发编程问题:如何安全地中断一个正在运行的线程
一个位5年的小伙伴去某东面试被一道并发编程的面试题给Pass了,说”如何中断一个正在运行中的线程?,这个问题很多工作2年的都知道,实在是有些遗憾。 今天,我给大家来分享一下我的回答。
102 0
|
6月前
|
安全 Python
告别低效编程!Python线程与进程并发技术详解,让你的代码飞起来!
【7月更文挑战第9天】Python并发编程提升效率:**理解并发与并行,线程借助`threading`模块处理IO密集型任务,受限于GIL;进程用`multiprocessing`实现并行,绕过GIL限制。示例展示线程和进程创建及同步。选择合适模型,注意线程安全,利用多核,优化性能,实现高效并发编程。
81 3
|
6月前
|
大数据 API 数据处理
Python高手都在用的并发秘籍:解锁线程与进程的终极奥义,性能飙升不是梦!
【7月更文挑战第8天】Python并发编程提升性能,线程(threading)适合I/O密集型任务,如网络请求,通过`start()`和`join()`实现并发。进程(multiprocessing)利用多核CPU,适用于CPU密集型任务,如大数据处理。结合两者可优化混合任务,实现最佳并发效果。
38 1
涨姿势了!原来这才是多线程正确实现方式
线程同步机制是一套适用于协调线程之间的数据访问机制,该机制可以保障线程安全 java平台提供的线程同步机制包括:锁、volatile关键字、final关键字,static关键字、以及相关API如object.wait/object.notify
|
安全 Java 数据库连接
麻了,代码改成多线程,竟有9大问题 下
麻了,代码改成多线程,竟有9大问题 下
|
消息中间件 JavaScript 小程序
麻了,代码改成多线程,竟有9大问题 上
麻了,代码改成多线程,竟有9大问题 上
|
监控
【多线程:犹豫模式】
【多线程:犹豫模式】
137 0
|
存储 缓存 Linux
面试官:如何写出让 CPU 跑得更快的代码?
CPU Cache 到底是什么样的,是如何工作的呢,又该写出让 CPU 执行更快的代码呢?
面试官:如何写出让 CPU 跑得更快的代码?