Java线程
文章平均质量分 57
.L.JIN.Jie
这个作者很懒,什么都没留下…
展开
-
Java多线程:线程6种状态
等待状态,表示线程进⼊等待状态,进⼊该状态表 示当前线程需要其他线程通知(notify或者 notifyAll)Java 线程在运⾏的⽣命周期中的指定时刻只可能处于下⾯ 6 种不同状态的其中⼀个状态。运⾏状态,Java线程将操作系统中的就绪和运⾏两 种状态统称为"运⾏中"初始状态,线程被构建,但是还没有调⽤start()⽅法。查看Thread类中定义了⼀个State枚举类型。超时等待状态,可以指定等待时间⾃⼰返回。终⽌状态,表示当前线程已经执⾏完毕。阻塞状态,表示线程阻塞于锁。原创 2023-11-23 19:53:05 · 14 阅读 · 0 评论 -
Java多线程:Thread.sleep(0)有意义吗?
让出CPU执行权,这个方法的底层是调用了操作系统的sleep或者nanosleep系统调用的。操作系统会把当前线程挂起,让出CPU执行权给到其他线程或者进程。Thread.sleep(0) 是Java中用于暂停线程的方法,是当前被暂停线程进入阻塞(有限时长等待)状态。然后操作系统的调度器,会再次根据优先级来选择一个线程来执行。,那么这个线程就会得到执行。如果没有,那么就会立即再次选择刚刚进入就绪状态的这个线程来执行。同时操作系统会设置一个定时器,当定时器是时间到了之后,操作系统会再次唤醒这一个线程。原创 2023-11-19 13:14:58 · 96 阅读 · 0 评论 -
Java多线程:synchronized的用法有哪些?作用呢?
①如果一个线程A调用一个实例对象的非静态 synchronized 方法,而线程B需要调用这个实例对象所属类的静态 synchronized 方法,是允许的,不会发生互斥现象,因为访问静态 synchronized 方法占用的锁是当前类的锁。②尽量不要使用 synchronized(String s) ,因为JVM中,字符串常量池具有缓冲功能。原创 2023-11-18 23:11:35 · 24 阅读 · 0 评论 -
Java多线程:synchronized 和 ReentrantLock 区别是什么?
可重入锁:重入锁,也叫做递归锁,可重入锁指的是在一个线程中可以多次获取同一把锁,比如: 一个线程在执行一个带锁的方法,该方法中又调用了另一个需要相同锁的方法,则该线程可以直接执行调用的方法,而无需重新获得锁, 两者都是同一个线程每进入一次,锁的计数器都自增1,所以要等到锁的计数器下降为0时才能释放锁。相比synchronized,ReentrantLock增加了一些高级功能。主要来说主要有三点:①等待可中断;③可实现选择性通知(锁可以绑定多个条件)原创 2023-11-16 19:23:51 · 35 阅读 · 0 评论 -
lock 和 synchronized 区别?
d. Lock 提供了公平锁和非公平锁的机制,公平锁是指线程竞争锁资源时,如果 已经有其他线程正在排队等待锁释放,那么当前竞争锁资源的线程无法插队。3. 从性能方面来看,Synchronized 和 Lock 在性能方面相差不大,在实现上会有一 些区别,Synchronized 引入了偏向锁、轻量级锁、重量级锁以及锁升级的方式来优化加锁的性能,而 Lock 中则用到了自旋锁的方式来实现性能优化。加锁对象的声明周期来控 制锁的作用范围,比如锁对象是静态对象或者类对象,那么这个锁就是全局锁。原创 2023-11-15 19:57:43 · 29 阅读 · 0 评论 -
Java多线程:execute方法和submit有什么区别
submit 方法不会直接抛出异常, 而是会将异常暂时存起来,等Future.get()方法的时候。Callable接口的参数,所以方法的传入submit方法的参数是可以有返回值的。自己的方法,并且从源码上看出这个方法是一个重载的方法。例如,以下代码上的37行捕获代码不能捕获子线程的异常。那么从以上两个方法的源码上就可以比较的出有什么区别。execute方法和submit方法是什么方法。接口的call方法是有返回值的。RunnableFuture又。接口的实现类对象的返回值,原创 2023-11-06 20:46:56 · 111 阅读 · 0 评论 -
并发、并行、串行
我们举个例⼦, 饭店的客户是线程, 菜单是指令, 厨师是cpu。原创 2023-11-02 20:53:56 · 71 阅读 · 1 评论 -
什么是线程池(Java)
线程池做的工作主要是控制运行的线程数量,处理过程中将任务放入队列,然后在线程创建后启动这些任务,如果线程数量超过了最大数量,超出数量的线程排队等候,等其他线程执行完毕,再从队列中取出任务来执行。原创 2023-10-31 21:10:21 · 85 阅读 · 1 评论 -
Java线程问题:sleep() 方法和wait() 方法的异同(区别)
这个问题其实也是面试过程中的一个高频面试题目,考察的异同基本是两个的使用和锁的区别,同时这两个方法也是我们使用Java并发编程中较为常见的方法。那么,这两个方法有什么区别呢?原创 2023-10-24 17:05:55 · 87 阅读 · 0 评论