面试题
学海无涯青山无尽
这个作者很懒,什么都没留下…
展开
-
请你说说进程间的通信方式
得分点: 管道、信号、消息队列、共享内存、内存映射、信号量、Socket 标准答案: 进程间通信主要包括:管道、命名管道、信号、消息队列、共享内存、内存映射、信号量、Socket: 1、管道 管道也叫无名管道,他是unix系统ipc(进程间通信)的最古老形式,所有的unix系统都支持这种通信机制斜体样式。管道本质其实是内核中为何的一块内存缓冲区,Linux系统中通过pipe()函数创建管道,会生成两个文件描述符,分别对应管道的读端和写端。无名管道只能用于具有亲缘关系的进程间通信。 2、命名管道 匿名管道原创 2022-06-11 00:23:28 · 95 阅读 · 0 评论 -
说说怎么保证线程安全
得分点 原子类 volatile 锁 标准回答 Java 保证线程安全的方式有很多,其中较为常用的有3种,按照资源占用情况由轻到重排列,这三种保证线程安全的方式分别是原子类、volatile、锁。JDK从1.5开始提供了java.util.concurrent.atomic包,这个包中的原子操作提供了一种用法简单、性能高效、线程安全的更新一个变量的方式。在atomic包里一共提供了17个类,按功能可以归纳为4中类型的原子更新方式,分别是原子更新基本类型、原子更新引用类型、原子更新属性、原子更新数组。无论原原创 2022-06-10 23:10:47 · 1950 阅读 · 0 评论 -
【面试题】请你说说多线程
线程是操作系统调度的最小单元,它可以让一个进程并发的处理多个任务,也叫轻量级进程。所以,在一个进程励可以创建多个线程,这些线程都拥有各自的计数器、堆栈、局部变量。并且能够共享进程内的资源。由于共享资源,处理器便可以在这些线程之间快速切换,从而让使用者感觉这些线程在同时执行。总的来说,操作系统可以同时执行多个任务,每个任务就是一个进程。进程可以同时执行多个任务,每个任务就是一个线程。一个程序运行之后至少有一个进程,而一个进程可以包含多个线程,但至少要包含一个线程。使用多线程会给开发人员带来显著的好处,而使用多原创 2022-06-10 19:51:51 · 208 阅读 · 0 评论