![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java EE初阶
文章平均质量分 86
双木非林~
这个作者很懒,什么都没留下…
展开
-
多线程系列六之死锁
1.死锁在程序猿开发环境中十分影响程序猿幸福感的一个问题,因为死锁的出现十分隐蔽,我们可能会感知不到,从而出现死锁。2.死锁:死锁是指两个或更多的事物在同一资源的相互占用,并尝试获取对方的资源。当很多进程因资源竞争而造成的一种僵局(都在互相等待对方释放锁),若没有外力的作用,这些进程都将处在等待之中。原创 2023-11-07 00:00:00 · 44 阅读 · 1 评论 -
多线程系列五之线程的状态
1.sleep方法是Thread类的类方法,因此通过使用Thread.sleep才能使用。2.让线程休眠,本质上就是让这些线程暂时不再参与调度。3.sleep方法需要包裹一个try catch,因为sleep可能会触发异常。原创 2023-11-06 00:00:00 · 31 阅读 · 0 评论 -
多线程系列四之Thread类用法
1.currentThread是Thread类的静态方法,可以通过这个方法获取到当前线程,简而言之就是,哪个线程调用的这个方法,得到就是哪个线程对象的引用。2.run方法执行完后,PCB就在被释放了,但是此时t对象还在,所以此时isAlive输出的是false。3.守护线程会随main线程的结束二终止,无论守护线程的工作是否做完,都必须终止。:又叫做守护线程,当mian线程结束时候,无论t线程工作是否做完都必须结束。2.如果设置为true,调用该方法的线程是守护线程,相反则为前台线程。原创 2023-11-05 00:00:00 · 24 阅读 · 0 评论 -
多线程系列九之线程安全
如果是单线程,代码的执行顺序是固定的,执行结果是可以预期的。但是有了多线程,变成抢占式执行,就会从一种情况变成无数种情况,那么我们就需要保证这无数种线程调度顺序,代码的执行顺序得到的结果都是正确的,2.相对于图中的cmp操作,load操作要慢的很多,又因为得到的load的数值都一样,此时编译器就做了一个优化,只从内存中读取一次后,直接从cpu寄存器中读取了。1.两个线程针对同一个对象加锁,就会产生锁竞争,先到先得,一个线程获取锁之后,另外一个线程只能阻塞等待,且不可抢占,只能等这个线程释放锁。原创 2023-11-12 00:00:00 · 36 阅读 · 1 评论 -
多线程系列七之单例模式
一、这种设计模式之所以被成为饿汉模式,是因为类加载阶段就把这个实例创建出来了,因此称之为饿汉模式。1.这个属性instance被static修饰,因此这个属性与实例无关,而是与类相关的。2.Java中的代码,每个类在编译完成之后都会形成一个 .class文件。在JVM运行过程中就会加载这个.class文件,并读取其中的二进制指令,在内存中构造出对应的类对象。例如:Singleton.class3.一个类对象在一个Java进程中只能有一份,因此类对象内部的类属性也是唯一一份的。原创 2023-11-09 00:00:00 · 28 阅读 · 1 评论 -
多线程系列三之创建多线程
本质上2方法相同,只不过把实现Runnable任务交给了匿名内部类的语法,new Runnable 描述了一个任务的内容 实例对象,然后把他交给了Thread的构造方法。本质上和1方法相同 new Thread 子类 只是这个子类没有名字 所以叫做匿名内部类 然后通过父类的引用指向了子类的run方法。原创 2023-11-03 00:00:00 · 25 阅读 · 1 评论 -
多线程系列二之认识线程
3.另外 关于线程本身的操作,操作系统都提供了API,操作系统提供的很多功能都被JVM给封装好了,因此我们并不用学习操作系统原生的API,只需要学习Java提供的API即可。我们引入进程是为了解决并发编程问题,然而随着CPU进入多核时代,要想提高程序的利用效率,必须要充分利用CPU的资源,才能提高程序的执行速度。对比这两种方法,我们就可以更加清晰的理解为什么线程比进程更加轻量,因为他把申请和释放的资源省下了,也就提高了程序的执行速度。进程的最大一个缺点就是太重,我们这里所说的重指的是在资源分配和回收上。原创 2023-11-01 00:00:00 · 1625 阅读 · 1 评论 -
多线程系列一之操作系统、进程、内存
操作系统:操作系统是一个负责管理的软件,对下负责管理硬件设备,对下为软件的运行提供稳定的运行环境。简而言之,操作系统是硬件、软件和用户进行交互的媒介。1.进程的定义:一个跑起来的程序就叫做一个进程,进程(process)也叫做任务(task).进程是操作系统进行资源分配的基本单位2.通过ctrl + alt + delet可以打开任务管理器,任务管理器中就可以查看当前启动的进程1.例如这里的idea.exe就是一个可执行程序。原创 2023-10-29 15:46:13 · 37 阅读 · 1 评论