![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
多线程
文章平均质量分 82
出世&入世
专注于计算机毕设开发、定制、文档编写指导等,对软件开发具有浓厚的兴趣,工作之余喜欢钻研技术,关注IT技术的发展趋势,感谢大家的关注与支持。
展开
-
保证线程安全的10个小技巧
对于从事后端开发的来说,线程安全问题是我们每天都需要考虑的问题。线程安全问题通俗的讲:主要是在多线程的环境下,不同线程同时读和写公共资源(临界资源),导致的数据异常问题。比如:变量a=0,线程1给该变量+1,线程2也给该变量+1。此时,线程3获取a的值有可能不是2,而是1。线程3这不就获取了错误的数据?线程安全问题会直接导致数据异常,从而影响业务功能的正常使用,所以这个问题还是非常严重的。那么,如何解决线程安全问题呢?今天跟大家一起聊聊,保证线程安全的10个小技巧,希望对你有所帮助。原创 2023-02-22 08:23:17 · 320 阅读 · 0 评论 -
2023最新版多线程面试题(四)(持续更新中)
41、在java 中 wait和 sleep 方法的不同?最大的不同是在等待时 wait 会释放锁,而 sleep一直持有锁。Wait 通常被用于线程间交互,sleep 通常被用于暂停执行。直接了解的深入一点吧:在 Java 中线程的状态一共被分成 6种:初始态: NEW创建一个 Thread 对象,但还未调用 start()启动线程时,线程处于初始态运行态: RUNNABLE在 Java 中,运行态包括就绪态 和 运行态就绪态 该状态下的线程已经获得执行所需的所有资源,只要 C原创 2023-02-05 09:00:00 · 417 阅读 · 0 评论 -
2023最新版多线程面试题(三)(持续更新中)
26、什么是线程组,为什么在 Java 中不推荐使用?线程组和线程池是两个不同的概念,他们的作用完全不同,前者是为了方便线程的管理,后者是为了管理线程的生命周期,复用线程,减少创建销毁线程的开销。27、为什么使用 Executor 框架比使用应用创建和管理线程好?为什么要使用 Executor 线程池框架每次执行任务创建线程 new Thread0比较消耗性能,创建一个线程是比较耗时、耗资源的。调用 new Thread0创建的线程缺乏管理,被称为野线程,而且可以无限制的创建原创 2023-02-05 08:00:00 · 524 阅读 · 0 评论 -
2023最新版多线程面试题(二)(持续更新中)
16、什么是并发容器的实现?何为同步容器: 可以简单地理解为通过 synchronized 来实现同步的容器,如果有多个线程调用同步容器的方法,它们将会串行执行。比如 Vector,Hashtable以及 Collections.synchronizedSet,synchronizedList 等方法返回的容器。可以通过查看 Vector,Hashtable 等这些同步容器的实现代码,可以看到这些容器实现线程安全的方式就是将它们的状态封装起来,并在需要同步的方法上加上关键字 synchronized。原创 2023-02-04 23:25:23 · 453 阅读 · 0 评论 -
2023最新版多线程面试题(一)(持续更新中)
1、在java 中守护线程和本地线程区别?java 中的线程分为两种: 守护线程 (Daemon) 和用户线程 (User) 。任何线程都可以设置为守护线程和用户线程,通过方法 Thread.setDaemon(boolon);true 则把该线程设置为守护线程,反之则为用户线程。Thread.setDaemon(必须在 Thread.start0之前调用,否则运行时会抛出异常。两者的区别:唯一的区别是判断虚拟机(JVM)何时离开,Daemon 是为其他线程提供服务,如果全部的 User T原创 2023-02-04 20:08:17 · 927 阅读 · 0 评论