- 博客(11)
- 资源 (4)
- 收藏
- 关注
转载 java线程间通讯的几种方式
文章目录 一、使用同一个共享变量控制 Synchronized、wait、notify Lock、Condition 利用volatile 利用AtomicInteger 二、PipedInputStream、PipedOutputStream 三、利用BlockingQueue 一、使用同一个共享变量控制Synchronized、wait、notifypublic class Demo1 { private final List.
2020-09-24 11:42:22 121
转载 TreeMap原理实现及常用方法
目录一. TreeMap概述 二. 红黑树回顾 三. TreeMap构造 四. put方法 五. get 方法 六. remove方法 七. 遍历 八. 总结前面我们分别讲了Map接口的两个实现类HashMap和LinkedHashMap,本章我们讲一下Map接口另一个重要的实现类TreeMap,TreeMap或许不如HashMap那么常用,但存在即合理,它也有自己的应用场景,TreeMap可以实现元素的自动排序。一. TreeMap概述TreeMap存储K-V键值对,通过.
2020-09-20 22:39:43 578
转载 Java中节点流和处理流的简单认知
在程序中所有的数据都是以流的方式进行传输或保存的,所以在Java中IO流也是必不可少的。Java中的IO流在java.io包中。在java.io包中不管是操作文件和目录都是使用File类来操作,File能新建、删除、重命名文件和目录,但是File不能访问文件内容本身。而需要操作文件内容在java.io包中主要有两大类:字符流和字节流(1)字符流字符流主要的操作对象是文本,因为文本的占用内存小,如果使用字节流,可能会因为各种字节编码字节位数不同,从而使得读取文本不完整,产生乱码。字符流在操作的时候是使
2020-09-20 16:54:28 311
转载 一文搞定Linux进程和线程(详细图解)
Linux 进程和线程本篇文章我们就深入理解一下 Linux 内核来理解 Linux 的基本概念之进程和线程。系统调用是操作系统本身的接口,它对于创建进程和线程,内存分配,共享文件和 I/O 来说都很重要。我们将从各个版本的共性出发来进行探讨。基本概念Linux 一个非常重要的概念就是进程,Linux 进程和我们在现代操作系统中探讨的进程模型非常相似。每个进程都会运行一段独立的程序,并且在初始化的时候拥有一个独立的控制线程。换句话说,每个进程都会有一个自己的程序计数器,这个程序计数器用来记录
2020-09-18 17:38:18 10949
转载 关于进程的一点理解
在任何时刻需要记住一点:任何某一时刻CPU只能执行一条指令,为一个进程服务,而不是多个进程服务。什么是多进程?比如你可以一边听网易音乐,一边聊天;这是两个不同的进程,这就是多进程;但是上文说某一时刻CPU只能干一件事情,是否矛盾? 在操作系统的管理下,所有正在运行的进程轮流使用CPU,每个进程允许占用CPU的时间非常短(比如1毫秒),这样用户根本感觉不出来 CPU是在轮流为多个进程服务,就好象所有的进程都在不间断地运行一样,给用户的感觉就是并行。但实际上在任何一个时间内有且仅...
2020-09-18 17:35:37 302
转载 操作系统面试题(三)
请你来说一说协程参考回答:1、概念:协程,又称微线程,纤程,英文名Coroutine。协程看上去也是子程序,但执行过程中,在子程序内部可中断,然后转而执行别的子程序,在适当的时候再返回来接着执行。例如:def A() :print '1'print '2'print '3'def B() :print 'x'print 'y'print 'z'由协程运行结果可能是12x3yz。在执行A的过程中,可以随时中断,去执行B,B也可能在执行过程中中断再去执行A。但协程的特点在
2020-09-18 17:33:48 11072 2
转载 操作系统面试题(二)
请你讲述一下互斥锁(mutex)机制,以及互斥锁和读写锁的区别参考回答:1、互斥锁和读写锁区别:互斥锁:mutex,用于保证在任何时刻,都只能有一个线程访问该对象。当获取锁操作失败时,线程会进入睡眠,等待锁释放时被唤醒。读写锁:rwlock,分为读锁和写锁。处于读操作时,可以允许多个线程同时获得读操作。但是同一时刻只能有一个线程可以获得写锁。其它获取写锁失败的线程都会进入睡眠状态,直到写锁释放时被唤醒。注意:写锁会阻塞其它读写锁。当有一个线程获得写锁在写时,读锁也不能被其它线程获取;写者优.
2020-09-18 17:32:31 8557
转载 操作系统面试题(一)
请你说一下进程与线程的概念,以及为什么要有进程线程,其中有什么区别,他们各自又是怎么同步的参考回答:基本概念:进程是对运行时程序的封装,是系统进行资源调度和分配的的基本单位,实现了操作系统的并发;线程是进程的子任务,是CPU调度和分派的基本单位,用于保证程序的实时性,实现进程内部的并发;线程是操作系统可识别的最小执行和调度单位。每个线程都独自占用一个虚拟处理器:独自的寄存器组,指令计数器和处理器状态。每个线程完成不同的任务,但是共享同一地址空间(也就是同样的动态内存,映射文件,目标代码等等)
2020-09-18 17:29:36 9263
原创 SQL练习
表t_active_user有字段dt(日期),city(城市),user_id(用户id),is_active(0:表示非活跃,1表示活跃)需求1:求在20200801到20200831期间,每个城市,用户活跃数最高的前2名用户。SELECT city,user_id,active_days,rankFROM(SELECT city,user_id,active_days,CASE city WHEN @c THEN @r:=@r+1 WHEN @c:=city THEN @r:=1
2020-09-11 18:12:49 97
转载 mysql中的case when 与if else
在sql中,能用if else 就不用case when下面来看看,具体为什么,没有搞清楚,如果有大神知道的提供下资料:Mysql的if既可以作为表达式用,也可在存储过程中作为流程控制语句使用,如下是做为表达式使用:IF表达式复制代码代码如下:IF(expr1,expr2,expr3)如果 expr1 是TRUE (expr1 <> 0 and expr1 <> NULL),则 IF()的返回值为expr2; 否则返回值则为 expr3。IF() 的返..
2020-09-11 17:57:07 1464
转载 从内核文件系统看文件读写过程
阅读目录系统调用 虚拟文件系统 I/O 缓冲区 Page Cache Address Space 文件读写基本流程回到顶部系统调用操作系统的主要功能是为管理硬件资源和为应用程序开发人员提供良好的环境,但是计算机系统的各种硬件资源是有限的,因此为了保证每一个进程都能安全的执行。处理器设有两种模式:“用户模式”与“内核模式”。一些容易发生安全问题的操作都被限制在只有内核模式下才可以执行,例如I/O操作,修改基址寄存器内容等。而连接用户模式和内核模式的接口称之为系统调用。应用程序代码运
2020-09-06 23:06:20 215
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人