主要内容: 一. 锁 二. 信号量 三. 事件 通过event来完成红绿灯模型 四. 队列(重点) 队列实现进程间的通信 五. 生产者消费者模型 1. 初始版本(程序会阻塞住) 2. 升级版本一(通过抛出异常信号的方式结束进程) 3. 升级版本二(通过发送结束信号的方式结束进程) 第一种: 生产者发 ...
分类:
编程语言 时间:
2018-10-25 00:36:58
阅读次数:
199
为什么要进行异常处理 下面这段代码能否正常执行 结果是我们在控制台中看到一段错误提示,那是因为除数不能为0。异常就是在程序运行过程中发生的不正常事件,会 中断运行的程序 。 Java 使用了异常处理机制为程序提供了错误处理的能力,在程序中预先设置好对付异常的处理办法,待程序发生异常时对异常进行处理, ...
分类:
编程语言 时间:
2018-10-25 00:29:55
阅读次数:
179
我们都知道当一个线程试图访问同步代码块时,它首先必须得到锁,退出或抛出异常时必须释放锁。这些基础也许大家都知道,但是很多人还是搞不清哪个对象才是锁?如果你能正确回答以下问题,那么才算你彻底搞明白了哪个对象才是锁? 静态同步方法问题 如下代码是两个静态同步方法 那么我们来问几个问题 实例同步方法问题 ...
分类:
其他好文 时间:
2018-10-24 15:35:00
阅读次数:
194
await & async模式是C#中一个很重要的特性,可以用来提高异步程序(多线程程序)的执行效率。但是如果尝试用await关键字来await一个为null的Task对象,会导致程序抛出NullReferenceException异常。 新建一个.NET Core控制台项目,贴入如下代码: 输出结 ...
原来的内存管理代码 int main(){ int *ptr = new(nothrow) int(0); //关闭异常 if(!ptr) { cout << "new fails." return 0; } if(!check()) ///有校验 ,抛出异常,每次都得管理内存 { delete p ...
分类:
其他好文 时间:
2018-10-20 15:01:06
阅读次数:
208
1.分配地方不同,malloc是堆上面,new是自由存储区域 2.malloc/delete是函数,new/delete是操作符,可以重载 3.malloc 要指定大小,返回的是void*指针,开辟的是空空间,失败返回NULL new有类型检测,编译器会自动计算大小,还会初始化空间,返回的是类指针, ...
分类:
编程语言 时间:
2018-10-19 23:40:18
阅读次数:
202
一、什么是Swagger Swagger 是一个规范和完整的框架,用于生成、描述、调用和可视化 RESTful 风格的 Web 服务。总体目标是使客户端和文件系统作为服务器以同样的速度来更新。文件的方法,参数和模型紧密集成到服务器端的代码,允许API来始终保持同步。 作用: 1. 接口的文档在线自动 ...
分类:
其他好文 时间:
2018-10-19 14:02:44
阅读次数:
214
DBCP、c3p0、Druid三大连接池区别 一、连接池优势 如果一个项目中如果需要多个连接,如果一直获取连接,断开连接,这样比较浪费资源; 如果创建一个池,用池来管理Connection,这样就可以重复使用Connection。 有了池我们就不用自己来创建Connection,而是通过池来获取Co ...
分类:
数据库 时间:
2018-10-17 16:46:30
阅读次数:
180
常用注解 @EqualsAndHashCode:实现equals()方法和hashCode()方法 @ToString:实现toString()方法 @Data :注解在类上;提供类所有属性的 getting 和 setting 方法,此外还提供了equals、canEqual、hashCode、t ...
分类:
编程语言 时间:
2018-10-16 11:55:52
阅读次数:
161
一: submit()方法,可以提供Future 类型的返回值。 executor()方法,无返回值。 execute无返回值 _ _ _ 二: excute方法会抛出异常。 sumbit方法不会抛出异常。除非你调用Future.get()。 _ _ _ 三: excute入参Runnable su ...
分类:
编程语言 时间:
2018-10-14 01:44:19
阅读次数:
193