【多线程与高并发,java数据结构面试常见问题

前言

前几天我上班路上,和小区门口开车的师傅闲聊,发现他们虽然学历不高,但挣钱的途径不少,比如固定接送多位客户,然后能通过朋友圈拓展新客户,而且通过客户口口相传,也能不断拉到生意,算下来每月也能挣1万5出头,好的话能有2万,我在上海,做IT的要月入2万,如果不是996,估计本科毕业还得干几年。

可能有人会说了,他们第一不交金,第二未必稳定,但这批师傅学历也就高中,对于这个学历来说,这个收入不能算低。反观我们,可能不少做IT的人,一心只做技术,只拿固定工资,不去拓展挣钱途径,或者虽然到处找活干,但和路边装修队相比,只是多了份固定工资,总之很难突破收入瓶颈。

所以我们IT人除了在不断提升自己的技术能力之外,更得积极主动地拓展挣钱途径,本文就将围绕这点展开。

[](()4、多线程

程序内部可以有不同的任务进行来回的线程切换,比如说我们使用的IDEA,它内部可能有的在等待网络的传输,有的在进行代码的展示,有的在进行save,将我们的代码保存在历史记录等等,这些个任务他们执行的时候也是并行的执行的,这个时候就产生了线程的概念,线程是属于一个进程里面并行执行的这样的不同的路线,一个程序不同任务的切换,一个线程如果要提升他的效率的,内部其实是非常复杂的。其中设计到网络和IO的知识。

[](()5、纤程/协程

是一种最轻量化的线程,一种绿色的线程,它也是一种用户线程,就是有用户自己管理,不再由计算机去管理,

让应用程序可以独立决定自己的线程要如何运作。操作系统内核不能看见它,也不会为它进行调度,纤程有自己的寻址空间。应用程序可以在一个线程环境中创建多个纤程,然后手动运行它。纤程不会被自动运行,必须要由应用程序自已指定让它运行,或换到下一个纤程。

[](()进程/线程/纤程


[](()1、什么是进程

进程就是说在系统中正在运行的应用程序,程序一旦运行就是进程,比如我们常用的QQ,WeChat等等,进程是系统进行资源分配的独立实体,每个进程都有自己独立的地址空间,一个进程可以有多个线程,每个线程使用自己所属进程的栈空间。

// 进程:是操作系统资源分配的基本单位,比如内存、打开文件、网络IO,分配了独立的内存空间

public class T00_Process {

public static void main(String[] args) {

System.out.println(“hello world”);

}

}

在这里插入图片描述

在这里插入图片描述

[](()2、什么是线程

线程是程序执行的最小单位,它被包含在进程之中,是进程中的实际运作单位。一条线程指的是一个单一顺序的控制流,一个进程中可以并发多个线程,每条线程并行执行不同的任务,通常也被称为轻量进程。

单线程:

单线程下,不同的执行路径

在这里插入图片描述

多线程:

在这里插入图片描述

[](()3、什么是纤程

纤程(Fiber)包含独立的目态栈,寄存器状态的控制信息,目态控制的纤程转接要求较高的编程经验,由于纤程属于目态对象,一个纤程被封锁意味着所在线程被封锁,应用程序可以通过ConvertThreadToFiber将线程转换为纤程,与线程对比,纤程具有切换速度快的特点。

纤程具有的特征

  • 线程是在Windows内核中实现的,操作系统会根据系统的调度算法对线程进行调度。

  • 纤程是在用户模式下实现的,内核对纤程一无所知。

  • 纤程是更轻量级的线程,一个线程可以包含一个或多个纤程

[](()什么是线程的切换


《一线大厂Java面试真题解析+Java核心总结学习笔记+最新全套讲解视频+实战项目源码》开源

Java优秀开源项目:

  • ali1024.coding.net/public/P7/Java/git

最后

这份《“java高分面试指南”-25分类227页1000+题50w+字解析》同样可分享给有需要的朋友,感兴趣的伙伴们可挑战一下自我,在不看答案解析的情况,测试测试自己的解题水平,这样也能达到事半功倍的效果!(好东西要大家一起看才香)

image

image

案解析的情况,测试测试自己的解题水平,这样也能达到事半功倍的效果!(好东西要大家一起看才香)

[外链图片转存中…(img-xMzgmpjM-1649571460392)]

[外链图片转存中…(img-Lr6VEIAY-1649571460393)]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值