多线程与并发
多线程与并发
jmlqqs
这个作者很懒,什么都没留下…
展开
-
2万字Java并发编程面试题合集(含答案,建议收藏)
Java 并发编程 1、在 java 中守护线程和本地线程区别? 2、线程与进程的区别? 3、什么是多线程中的上下文切换? 4、死锁与活锁的区别,死锁与饥饿的区别? 5、Java 中用到的线程调度算法是什么? 6、什么是线程组,为什么在 Java 中不推荐使用? 7、为什么使用 Executor 框架? 8、在 Java 中 Executor 和 Executors 的区别? 9、如何在 Wind...原创 2020-04-18 11:16:37 · 120 阅读 · 0 评论 -
java 中断线程的几种方式 interrupt()
中断 中断(Interrupt)一个线程意味着在该线程完成任务之前停止其正在进行的一切,有效地中止其当前的操作。线程是死亡、还是等待新的任务或是继续运行至下一步,就取决于这个程序。虽然初次看来它可能显得简单,但是,你必须进行一些预警以实现期望的结果。你最好还是牢记以下的几点告诫。 首先,忘掉Thread.stop方法。虽然它确实停止了一个正在运行的线程,然而,这种方法是不安全也是不受提倡的,这意味...原创 2019-12-26 11:16:24 · 304 阅读 · 0 评论 -
Java中interrupt的使用
通常我们会有这样的需求,即停止一个线程。在java的api中有stop、suspend等方法可以达到目的,但由于这些方法在使用上存在不安全性,会带来不好的副作用,不建议被使用。具体原因可以参考Why is Thread.stop deprecated。 在本文中,将讨论中断在java中的使用。 中断在java中主要有3个方法,interrupt(),isInterrupted()和interrup...原创 2019-12-26 10:00:53 · 90 阅读 · 0 评论 -
synchronize和Lock锁的区别
为什么java已经通过synchronized关键字实现同步访问了,还需要提供Lock? synchronized的缺陷 前面博客有提到过释放对象的锁有两种情况: 程序执行完同步代码块会释放代码块。 程序在执行同步代码块是出现异常,JVM会自动释放锁去处理异常。 如果获取锁的线程需要等待I/O或者调用了sleep()方法被阻塞了,但仍持有锁,其他线程只能干巴巴的等着,这样就会很影响程序效率。 因此...原创 2019-12-23 15:07:54 · 212 阅读 · 0 评论