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

简介: 浩哥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多核资源、提高程序响应时间、异步化执行任务。
缺点:逻辑控制复杂、容易产生死锁、线程管理问题。

目录
相关文章
|
17天前
|
存储 网络协议 安全
Java网络编程,多线程,IO流综合小项目一一ChatBoxes
**项目介绍**:本项目实现了一个基于TCP协议的C/S架构控制台聊天室,支持局域网内多客户端同时聊天。用户需注册并登录,用户名唯一,密码格式为字母开头加纯数字。登录后可实时聊天,服务端负责验证用户信息并转发消息。 **项目亮点**: - **C/S架构**:客户端与服务端通过TCP连接通信。 - **多线程**:采用多线程处理多个客户端的并发请求,确保实时交互。 - **IO流**:使用BufferedReader和BufferedWriter进行数据传输,确保高效稳定的通信。 - **线程安全**:通过同步代码块和锁机制保证共享数据的安全性。
68 23
|
8月前
|
安全 Python
告别低效编程!Python线程与进程并发技术详解,让你的代码飞起来!
【7月更文挑战第9天】Python并发编程提升效率:**理解并发与并行,线程借助`threading`模块处理IO密集型任务,受限于GIL;进程用`multiprocessing`实现并行,绕过GIL限制。示例展示线程和进程创建及同步。选择合适模型,注意线程安全,利用多核,优化性能,实现高效并发编程。
107 3
|
10月前
|
存储 算法 Java
理解进程调度的基本过程,为学好多线程打好基础
理解进程调度的基本过程,为学好多线程打好基础
80 0
理解进程调度的基本过程,为学好多线程打好基础
|
调度
多线程初阶——进程调度的基本过程
多线程初阶——进程调度的基本过程
117 0
多线程初阶——进程调度的基本过程
|
安全 Java Linux
2.多线程-初阶(上)
2.多线程-初阶(上)
148 0
|
Java 程序员 调度
多线程(初阶)——多线程基础
多线程(初阶)——多线程基础
129 0
|
算法 安全 Java
深入理解多线程编程:并发世界的探险
在计算机编程领域,随着多核处理器的普及,多线程编程成为了一种常见的技术。多线程编程可以提高程序的性能,充分利用多核处理器的计算能力。然而,多线程编程并不容易,它引入了并发性和同步问题,需要开发者仔细思考和处理线程之间的竞争条件。本文将深入探讨多线程编程的概念、技术和最佳实践,帮助读者更好地应对并发编程挑战。
|
安全 Java 编译器
2.多线程-初阶(下)(上)
2.多线程-初阶(下)(上)
108 0
|
存储 缓存 安全
2.多线程-初阶(下)(下)
2.多线程-初阶(下)(下)
89 0
|
SQL 缓存 安全
【多线程】——java多线程编程核心读书总结
前段时间学习到多线程相关内容了,看了java多线程编程核心这本书,下面是小编对这本书的总结