多线程java(多线程Java面试题)
1、临界资源是一次仅允许一个进程使用的共享资源。各进程采取互斥的方式,实现共享的资源称作临界资源。
2、属于临界资源的硬件有,打印机,磁带机等;软件有消息队列,变量诸进程间采取互斥方式,实现对这种资源的共享。每个进程中访问临界资源的那段代码称为临界区,每次只允许一个进程进入临界区,进入后,不允许其他进程进入。进程是系统资源分配的最小单位,线程是程序执行的最小单位。
3、进程使用独立的数据空间,而线程共享线程的数据空间。进程的切换效率比线程低。无名管道:半双工的,即数据只能在一个方向上流动,只能用于具有亲缘关系的进程之间的通信,可以看成是一种特殊的文件,对于它的读写也可以使用普通的、等函数。但是它不是普通的文件,并不属于其他任何文件系统,并且只存在于内存中。
4、命名管道:是一种文件类型,可以在无关的进程之间交换数据,与无名管道不同,有路径名与之相关联,它以一种特殊设备文件形式存在于文件系统中。消息队列:消息队列,是消息的链接表,存放在内核中。
5、一个消息队列由一个标识符,即队列。信号量:信号量是一个计数器,信号量用于实现进程间的互斥与同步,而不是用于存储进程间通信数据。共享内存:共享内存指两个或多个进程共享一个给定的存储区,一般配合信号量使用。
多线程java(多线程Java面试题)
1、:简单介绍进程的切换过程。主要考察线程上下文的切换代价,要回答切换会保持寄存器、栈等线程相关的现场,需要由用户态切换到内核态,最后知道可以通过命令查看上下文的切换状况。关键字:使用共享内存的思想,多个线程同时监听一个变量,当这个变量发生变化的时候,线程能够感知并执行相应的业务。使用类的()和()方法。
2、使用结合的()和()方法。信号量,可以控制对共享资源的并发访问度,有()和()方法。:控制线程等待,计数器功能,可以用来等待多个线程执行任务后进行汇总。:类似但更强大,可以重复使用,控制多个线程,一般测试使用。
3、基本实现线程间的阻塞和唤醒。互斥条件:一个资源每次只能被一个线程使用;请求与保持条件:一个线程因请求资源而阻塞时,对已获得的资源保持不放;不剥夺条件:进程已经获得的资源,在未使用完之前,不能强行剥夺;
4、循环等待条件:若干线程之间形成一种头尾相接的循环等待资源关系。使用图形化工具直接检查死锁。使用命令行分析线程信息。同步与异步的区别是任务是否在同一个线程中执行的,阻塞与非阻塞的区别是异步执行任务时线程是不是会阻塞等待结果还是会继续等待后面的逻辑继承类创建线程类。
5、定义类的子类,并重写该类的方法,该方法的方法体就代表了线程要完成的任务。因此把()方法称为执行体。创建子类的实例,即创建了线程对象。
暂无评论
发表评论