初步认识Java多线程

—工欲善其事,必先利其器,欢迎关注我,关注不迷路,我是学利器,一起分享一起成长

初识多线程

一、多线程是什么

进程与线程区分,进程就是系统中正在运行的一个程序,程序一旦运行起来就有一个进程,如window系统中,你打开任务管理器,每个应用都开启了一个进程。而此时的进程又可以开启多个不同的线程来执行。
简单的解释就是,在同一个进程开启了多条不同的执行路径,每条执行路径就是一个线程,多条不同路径同时执行

二、多线程的优势

1、使用多线程可以提高执行效率
2、快速响应给客户,提高客户体验度
3、每个线程之间互不影响

三、多线程的应用场景

1、使用多线程实现异步记录日志,如登录日志
2、使用多线程实现异步发送短信,邮件等信息
3、使用多线程处理一个比较耗时的业务

四、是否多线程开越多越好

如果你的项目比较小,可以采用多线程异步实现处理,提高处理效率,但是如果你的项目涉及到高并发的情况,如果频繁的创建线程,同时也会被CPU分配调度,不断的切换上下文,对服务器性能影响会比较大,所以建议如果在高并发的情况下可以采用消息中间件(MQ)ActiveMQ,RabbitMQ,ROCKETMQ,Kafka等来替换。
那么可能有些人对什么是上下文切换不是很理解,对于单核的CPU来说,CPU同一个时刻只能运行一个线程,当正在运行的线程切换到另一个线程时,我们就把这个过程理解为CPU上下文切换。
如果你的电脑是多核处理器,比方你的电脑配置是I7 7600U 2核 4线程(如我的电脑这个配置表示该电脑同一个时刻可以寄开启4个线程同时运行,服务器支持的线程数越高可以减少CPU上下文切换,从而提高效率,
所以并非多线程开启越多越好,应该根据自己服务器的配置情况,开启线程,否则不但没有提高效率反而影响整个程序的运行效率,得不偿失啊!

那么如何查看自己的服务器核数和线程数呢?网上可能有些让你看配置可能有些方法是错的

window系统查看核数,线程数

win+R,输入命令wmic,再输入cpu get *,找到numberofcores和numberoflogicalprocessors


D:\xxx>wmic
wmic:root\cli>cpu get *

或者

wmic:root\cli>cpu get numberofcores
NumberOfCores
2
wmic:root\cli>cpu get numberoflogicalprocessors
NumberOfLogicalProcessors
4

Linux查看核数和线程数

查看CPU个数

[root@iZbp178arq0qlx650bdn5pZ ~]# grep 'physical id' /proc/cpuinfo | sort -u | wc -l
1

查看CPU核数

[root@iZbp178arq0qlx650bdn5pZ ~]# grep 'core id' /proc/cpuinfo | sort -u | wc -l
4

查看CPU线程数

[root@iZbp178arq0qlx650bdn5pZ ~]# grep 'processor' /proc/cpuinfo | sort -u | wc -l
8
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值