面试
文章平均质量分 93
YangGuang_0
向上戳天,向下扎地
展开
-
我就不信搞不懂Java中的这些锁
一、乐观锁和悲观锁1.乐观锁乐观锁是一种乐观思想,假定当前环境是读多写少,遇到并发写的概率比较低,读数据时认为别的线程不会正在进行修改(所以没有上锁)。写数据时,判断当前 与期望值是否相同,如果相同则进行更新(更新期间加锁,保证是原子性的)。Java中的乐观锁: CAS,比较并替换,比较当前值(主内存中的值),与预期值(当前线程中的值,主内存中值的一份拷贝)是否一样,一样则更新,否则继续进行CAS操作。如下图所示,可以同时进行读操作,读的时候其他线程不能进行写操作。2.悲观锁悲观锁是一种悲观.原创 2021-08-13 16:32:29 · 325 阅读 · 0 评论 -
进程调度算法和进程通信方式
一、优先调度算法1. 先来先服务调度算法(FCFS)当在作业调度中采用该算法时,每次调度都是从后备作业队列中选择一个或多个最先进入该队列的作业,将它们调入内存,为它们分配资源、创建进程,然后放入就绪队列。在进程调度中采用 FCFS 算法时,则每次调度是从就绪队列中选择一个最先进入该队列的进程,为之分配处理机,使之投入运行。该进程一直运行到完成或发生某事件而阻塞后才放弃处理机。特点是:算法比较简单,可以实现基本上的公平。2. 短作业(进程)优先调度算法短作业优先(SJF)的调度算法是从后备队列中选择原创 2021-07-21 15:59:44 · 258 阅读 · 0 评论 -
BIO、NIO、AIO和多路复用IO
我们首先要知道IO发生时涉及的对象和步骤。对于一个network IO (这里我们以read举例),它会涉及到两个系统对象,一个是调用这个IO的process (or thread),另一个就是系统内核(kernel)。当一个read操作发生时,它会经历两个阶段:等待数据准备 (Waiting for the data to be ready)将数据从内核拷贝到进程中(Copying the data from the kernel to the process)记住这两点很重要,因为这些IO模型原创 2021-07-17 17:06:51 · 273 阅读 · 0 评论 -
牛客网部分面试题整理
一、关键字Java里面的final关键字是怎么用的?final可以用来修饰类、类方法、以及变量当用final修饰一个类时,表明这个类不能被继承;修饰类方法时,则该方法不能被继承。也不能被重写;修饰变量时,如果是基本数据类型的变量,则其数值一旦在初始化之后便不能更改;如果是引用类型的变量,则在对其初始化之后便不能再让其指向另一个对象。关于Synchronized和lock ? synchronized是Java的关键字,是内置的语言实现;当它用来修饰一个方法或者一个代码块的时候,能够保证在同一原创 2021-06-15 15:44:49 · 863 阅读 · 1 评论