
Java多线程
文章平均质量分 91
b15735105314
这个作者很懒,什么都没留下…
展开
-
Samaphore
23:12:44.310 [Thread-12] INFO com.bxp.threadtest.samaphoretest.SemaphoreTest - 小汽车Thread-12进入停车场。23:12:45.315 [Thread-12] ERROR com.bxp.threadtest.samaphoretest.SemaphoreTest - 小汽车Thread-12停留1秒。原创 2024-02-28 23:18:54 · 1160 阅读 · 0 评论 -
Synchronized简介与使用
1、Synchronized的作用能够保证在同一时刻最多只有一个线程执行该段代码,已达到保证并发安全的效果。如果没有Synchronized去保证并发安全,那么程序运行的结果会有差错。实例代码:public class MyRunnable implements Runnable{ private static int a = 0; private static ...原创 2019-09-05 15:02:47 · 173 阅读 · 0 评论 -
多线程访问同步方法的7种情况(面试常考)
1、两个线程同时访问一个对象的同步方法public class SynchronizedObjectMethod implements Runnable { private static SynchronizedObjectMethod synchronizedObjectMethod = new SynchronizedObjectMethod(); ...原创 2019-09-05 17:54:47 · 818 阅读 · 0 评论 -
Synchronized的性质与原理
一、synchronized的两个性质1、可重入同一线程的外层函数获得锁之后,内层函数可以直接再次获取该锁,优点是避免死锁,提升封装性synchronized的粒度:可重入的粒度是线程范围的而非调用范围的,即在同一个线程中如果已经拿到了一把锁,如果想接着使用这把锁去调用其他的方法或者其他类的方法,只要它需要的锁依然是手中拥有的这把锁,那么该线程可以直接的去调用该它需要的方法,而不需要显...原创 2019-09-10 15:46:49 · 280 阅读 · 0 评论 -
Synchronized关键字-------常见面试问题
1、使用注意点:锁对象不能为空:指定一个对象作为锁对象,那么这个对象就不能为空,该对象必须是被创建好的实例,因为锁的相关信息是保存在对象头中的,如果对象为空,锁信息也就不会存在,锁也就不能工作。作用域不宜过大:即synchronized关键字包裹的范围不能太大,如果把尽可能代码多的用synchronized关键字修饰,自然会降低出并发问题的可能性,但是这也会使的多线程在更多的地方处于串行工...原创 2019-09-16 20:55:28 · 436 阅读 · 0 评论 -
多线程的8大基础核心——实现多线程的几种方法
1、实现多线程一共有两种方法(官方文档这么说的)(1)声明类是Thread的子类(即继承Thread),不推荐使用这种方法缺点:从代码架构角度去考虑,run()方法就是我们具体执行的内容,run()方法的执行应该与我们线程(Thread)的创建、执行是解耦的,不应该把二者混为一谈。继承Thread实现线程,这种时候我们每次新建一个任务,只能去创建一个新的线程,而线程的创建、执行、销毁是...原创 2020-03-25 14:36:23 · 295 阅读 · 0 评论