线程:是操作系统调度的基本单位,没有独立的地址空间和内存空间(只有自己的堆栈和局部变量,只能共享所在进程的内存空间),线程之间可以共享进程内的资源,上下文切换快,并发高,不能独立执行(应用程序控制多线程执行,进程通过管理线程优先级间接控制线程执行),不健壮(因为一个线程崩溃会导致整个进程崩溃)。 运行时数据区包括...
等待池:假设线程A调用了某个对象的wait()方法,线程A就会释放该对象的锁,并进入该对象的等待池,等待池中的线程不会去竞争该对象的锁。 锁池:只有获取了对象的锁,线程才能执行对象的 synchronized 代码,对象的锁每次只有一个线程可以获得,其他线程只能在锁池中等待 9.线程的 run() 和 start() 有什么区别? 调用...
Executors.newCachedThreadPool:创建一个可根据需要创建新线程的线程池,并允许自定义线程工厂。 Executors.newFixedThreadPool:创建一个可重用固定线程数的线程池,并允许自定义线程工厂。 Executors.newSingleThreadExecutor:创建一个只有一个线程的线程池,并允许自定义线程工厂。 Executors.newScheduledThreadPool:创建一个用...
所以,这样就有问题了,可能线程A在执行Hashtable的put方 法添加数据,线程B则可以正常调用size()方法读取Hashtable中当前元素的个数,那读取到的值可能不是最新的,可能线程A添加了完了数据,但是没有对size++,线程B就已经读取size了,那么对于线程B来说读取到的size- -定是不准确的。而给size()方法加了同步之后, ...
问:进程和线程的区别? 进程是执行中的一段程序,而一个进程中执行中的每个任务即为一个线程。 一个线程只可以属于一个进程,一个进程能包含多个线程。 进程是资源分配的最小单位,线程是资源调度的最小单位。 进程有自己的独立地址空间,每启动一个进程,系统就会为它分配地址空间。进程中的线程共享进程中的数据。
1. 什么是多线程?多线程是一种编程技术,可以让计算机同时处理多个任务,这些任务可以在同一时间内运行,提高了程序的效率。类比于日常生活,就像一个人同时可以做多件事情,比如说同时听音乐、看视频、写作业等 比如你在下载一个很大的文件,如果你使用单线程下载,那么你只能等待文件下载完成后才能去做其他事情。
1. 现在有T1、T2、T3三个线程,你怎样保证T2在T1执行完后执行,T3在T2执行完后执行?这个线程问题通常会在第一轮或电话面试阶段被问到,目的是检测你对”join”方法是否熟悉。这个多线程问题比较简单,可以用join方法实现。2. 在Java中Lock接口比synchronized块的优势是什么?你需要实现一个高效的缓存,它允许多个...
往常会在电话面试中常常被问到的Java线程面试问题。最大的不一样是在等候时wait会开释 锁,而sleep向来拥有锁。Wait往常被用于线程间交互,sleep往常被用于暂停履行。 4)用Java实现堵塞行列。 这是一个相对困难的多线程面试问题, 它能达到好多的目的。 第一,它能够检测侯选者能否能实质的用Java线程写程序;第二,能...
Wait通常被用于线程间交互,sleep通常被用于暂停执行。 4)用Java实现阻塞队列。 这是一个相对艰难的多线程面试问题,它能达到很多的目的。第一,它可以检测侯选者是否能实际的用Java线程写程序;第二,可以检测侯选者对并发场景的理解,并且你可以根据这个问很多问题。如果他用wait()和notify()方法来实现阻塞队列,你可以...