自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

cinhori的博客

cinhori的学习之旅

  • 博客(16)
  • 收藏
  • 关注

原创 新类库中的构件

新类库中的构件@(并发)[java, 并发, Thinking in Java]新类库中的构件 CountDownLatch CyclicBarrier DelayQueue PriorityBlockingQueue 使用ScheduledExecutor的温室控制器 Semaphore Exchanger 1. CountDownLatch用法:它被用来同步一个或多个任务,强制它们等待由其他任务

2017-08-18 16:51:06 345

原创 死锁

死锁@(并发)[java, 并发, Thinking in Java]死锁 死锁:任务之间相互等待的连续循环,没有哪个线程能继续。 典型:哲学家问题当同时满足一下4个条件时就会发生死锁: 1. 互斥条件:任务使用的资源中至少有一个是不能共享的, 2. 至少有一个任务它必须持有一个资源且正在等待获取一个当前被别的任务持有的资源 3. 资源不能被抢占,任务必须把资源释放当作普通事件 4. 必须

2017-08-18 16:50:31 208

原创 线程之间的协作

线程之间的协作@(并发)[java, 并发, Thinking in Java]线程之间的协作 wait 与 notifyAll 1 错失的信号 notify 与 notifyAll 生产者与消费者 2 使用显式的Lock和Condition对象 3 生产者-消费者与队列 4 任务间使用管道进行输入输出 1. wait() 与 notifyAll()waint()使得可以等待某个条件发生,而改变这个

2017-08-18 16:49:57 209

原创 终结任务

终结任务@(并发)[java, 并发, Thinking in Java]终结任务 在阻塞时终结 1 线程状态 2 进入阻塞状态 中断 检查中断 1. 在阻塞时终结1.1. 线程状态新建 就绪 阻塞 死亡1.2. 进入阻塞状态原因: 1. 调用sleep()方法,任务在指定的时间内不会运行,也不会释放锁 2. 调用wait()使线程挂起。直到线程得到norify()或notifyAll()

2017-08-18 16:49:20 214

原创 共享受限资源

共享受限资源@(并发)[java, 并发, Thinking in Java]共享受限资源 解决共享资源竞争 1 synchronized 2 显式的Lock对象 原子性与易变性 原子类 临界区 在其他对象上同步 线程本地存储 1. 解决共享资源竞争基本所有的并发模式在解决线程冲突问题的时候,都是采用序列化访问共享资源的方案,通常这是通过在代码前面加上一条锁语句实现的,这种机制称为互斥量1.1. s

2017-08-18 16:48:38 229

原创 基本线程机制

基本线程机制@(并发)[java, 并发, Thinking in Java]基本线程机制 定义任务 Thread类 使用Executor 从任务中返回值实现Callable接口 休眠 优先级 让步 后台daemon线程 1 设置后台标志 2 定制ThreadFactory 编码的变体 1 直接继承Thread 2 自管理的Runnable 3 匿名内部类 术语 加入一个线程 创建有响应的用户界面

2017-08-18 16:47:41 199

原创 Java内存区域与内存溢出异常

Java内存区域与内存溢出异常@(jvm)[java, jvm, 自动内存管理机制]Java内存区域与内存溢出异常 运行时数据区域 1 程序计数器 2 Java虚拟机栈 3 本地方法栈 4 Java堆 5 方法区 6 运行时常量池 7 直接内存 HotSpot虚拟机对象探秘 1 对象的创建 2 对象的内存布局 21 对象头 22 实例数据 23 对齐填充 3 对象的访问定位 OutOfMemoryE

2017-08-18 16:43:46 144

原创 为什么要设置两个Survivor区

设置两个Survivor区最大的好处就是解决了碎片化,下面我们来分析一下。 为什么一个Survivor区不行?第一部分中,我们知道了必须设置Survivor区。假设现在只有一个survivor区,我们来模拟一下流程: 刚刚新建的对象在Eden中,一旦Eden满了,触发一次Minor GC,Eden中的存活对象就会被移动到Survivor区。这样继续循环下去,下一次Eden满了的时候,问题来了,

2017-08-18 16:42:45 853

原创 垃圾回收器与内存分配策略

垃圾回收器与内存分配策略@(jvm)[java, jvm, 自动内存管理机制]垃圾回收器与内存分配策略 对象存活判定算法 1 引用计数算法 2 可达性分析算法 3 引用描述 4 生存还是死亡 5 回收方法区 垃圾回收算法 1 标记-清除算法 2 复制算法 3 标记-整理算法 4 分代收集算法 HotSpot的算法实现 1 枚举根节点 2 安全点 3 安全区域 垃圾收集器 1 新生代收集器 11 Se

2017-08-18 16:42:02 253

原创 虚拟机类加载机制

虚拟机类加载机制@(jvm)[java, jvm, 虚拟机执行子系统]虚拟机类加载机制 类加载的时机 类加载的过程 1 加载 2 验证 3 准备 4 解析 5 初始化 类加载器 1 类与类加载器 2 双亲委派模型 3 双亲委派模型的破坏 1. 类加载的时机类从被加载到虚拟机内存中开始,到卸载出内存为止,整个生命周期包括加载、验证、准备、解析、初始化、使用、卸载,其中验证、准备、解析统称为连接 解析

2017-08-18 16:39:05 165

原创 关于malloc()前是否需要类型转换,即void*转换为具体类型

之前在Stack OverFlow上贴了段代码,求帮忙找bug,意外的收获了关于malloc()前是否需要类型转换的一些说法,很涨姿势,贴出来大家共享 you don’t cast the result, since: - It is unnecessary, as void * is automatically and safely promoted to any other poin

2017-03-10 17:58:44 1487

原创 RAW格式化

前段时间用U盘安装UBUNTU,忘记用了哪个软件,结果后来发现U盘文件系统成了RAW,U盘权限也变成read-only。在尝试重新格式化NTFS过程中,试过传统方法(直接右键),以及testdisk软件都不得行,最后通过CMD下命令行解决,记录如下: 1. 首先以 管理员运行 CMD 2. 执行以下命令diskpart list disk //查看usb的disk号 select disk x

2017-03-09 11:39:06 1183

转载 C中的预编译宏定义

C中的预编译宏定义@(C)[宏]C中的预编译宏定义 预处理命令简介 预处理的方法 预处理命令详述 define undef if elif else endif ifdef ifndef defined include include_next 预定义宏 line pragma _Pragmawarning error 在将一个C源程序转换为可执行程序的过程中, 编译预处理是最初的步骤. 这一步骤

2017-03-08 16:46:26 351

原创 运输层笔记--TCP

运输层笔记–TCP@(TCP/IP)[TCP]运输层笔记TCP TCP服务 TCP特点 TCP连接 1 连接建立 2 数据传送 3 连接终止 流量控制 差错控制 拥塞控制 1 拥塞策略TCP报文段 1. TCP服务 进程到进程的通信 流交付服务。 TCP允许进程以字节流的形式来传递数据(UDP中进程传递用户数据报,已定义好边界),但TCP会把若干字节组成报文段 TCP中会存在两个缓存,即发送缓存

2017-03-07 15:41:17 393

原创 运输层笔记--UDP

运输层–UDP@(TCP/IP)[运输层 UDP]运输层UDP 用户数据报 服务特点 应用1. 用户数据报2. 服务特点 进程到进程的通信 无连接的服务:每个用户数据报是独立的,所以只有短报文的进程才能使用UDP 没有流量控制 除校验和外,没有其他差错控制 没有拥塞控制 封装与解封 排队 在客户端,进程启动时从操作系统处请求得到(临时)端口号,并最终有一个入和一个出队列 在服务器端,在它开始运行

2017-03-06 18:30:00 179

原创 运输层笔记--简介

运输层笔记–简介@(TCP/IP)[运输层]运输层笔记简介 运输层服务 1 进程到进程的通信 2 编址端口号 3 封装和解封 4 复用和分用 5 流量控制 6 差错控制 7 流量控制和差错控制的组合 8 拥塞控制 9 无连接的和面向连接的服务 运输层协议 1 简单协议 2 停止等待协议 3 返回N协议 4 选择重传协议1. 运输层服务1.1 进程到进程的通信网络层负责计算机级的通信(主机到主机的通信

2017-03-06 17:43:33 361

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除