摘要: 线程池的技术背景 在面向对象编程中,创建和销毁对象是很费时间的,因为创建一个对象要获取内存资源或者其它更多资源。在Java中更是如此,虚拟机将试图跟踪每一个对象,以便能够在对象销毁后进行垃圾回收。所以提高服务程序效率的一个手段就是尽可能减少创建和销毁对象的次数,特别是一些很耗资源的对象创建和销毁。如 阅读全文
posted @ 2017-05-25 14:39 mximo 阅读(180) 评论(0) 推荐(0) 编辑
摘要: 先来个概述,第二部分的画述才是厉害的。 Garbage collection(GC) 现在的高级语言如java,c#等,都采用了垃圾收集机制,而不再是c,c++里用户自己管理维护内存的方式。自己管理内存极其自由,可以任意申请内存,但如同一把双刃剑,为大量内存泄露,悬空指针等bug埋下隐患。对于一个字 阅读全文
posted @ 2017-05-25 11:33 mximo 阅读(315) 评论(0) 推荐(0) 编辑
摘要: 免费开源、跨平台、解释型语言、可移植性、可嵌入性。面向对象、可扩展性(部分可以用c++实现) 阅读全文
posted @ 2017-05-25 11:30 mximo 阅读(185) 评论(0) 推荐(0) 编辑
摘要: 首先我们来定义流的概念,一个流可以是文件,socket,pipe等等可以进行I/O操作的内核对象。 不管是文件,还是套接字,还是管道,我们都可以把他们看作流。 之后我们来讨论I/O的操作,通过read,我们可以从流中读入数据;通过write,我们可以往流写入数据。现在假定一个情形,我们需要从流中读数 阅读全文
posted @ 2017-05-10 17:16 mximo 阅读(169) 评论(0) 推荐(0) 编辑
摘要: 存储过程:存储过程就是编译好了的一些sql语句。1.存储过程因为SQL语句已经预编绎过了,因此运行的速度比较快。2. 可保证数据的安全性和完整性。通过存储过程可以使没有权限的用户在控制之下间接地存取数据库,从而保证数据的安全。通过存储过程可以使相关的动作在一起发生,从而可以维护数据库的完整性。3.可 阅读全文
posted @ 2017-05-10 15:10 mximo 阅读(243) 评论(0) 推荐(0) 编辑
摘要: 一、首先什么是事务? 事务是应用程序中一系列严密的操作,所有操作必须成功完成,否则在每个操作中所作的所有更改都会被撤消。也就是事务具有原子性,一个事务中的一系列的操作要么全部成功,要么一个都不做。 事务的结束有两种,当事务中的所以步骤全部成功执行时,事务提交。如果其中一个步骤失败,将发生回滚操作,撤 阅读全文
posted @ 2017-05-06 18:37 mximo 阅读(241) 评论(0) 推荐(0) 编辑
摘要: 1.只查看该进程:ps -ef | grep 113452.查看该进程打开的文件:lsof -p 113453.查看内存分配:lcat /proc/11345/maps4.查看堆栈:pstack 113455.查看发出的系统调用:strace -p 113456.查看调用库函数:ltrace -p 阅读全文
posted @ 2017-05-06 10:14 mximo 阅读(153) 评论(0) 推荐(0) 编辑
摘要: 首先,协程实现可以通过send(None)启动,send(n)调用,close()关闭。 asyncio的编程模型就是一个消息循环。我们从asyncio模块中直接获取一个EventLoop的引用,然后把需要执行的协程扔到EventLoop中执行,就实现了异步IO。 @asyncio.coroutin 阅读全文
posted @ 2017-05-05 15:25 mximo 阅读(548) 评论(0) 推荐(0) 编辑
摘要: 点击进入:https://launchpad.net/~damien-moore/+archive/ubuntu/codeblocks-stable To install Code::Blocks from this PPA, open a terminal and type: sudo add-a 阅读全文
posted @ 2017-05-02 21:24 mximo 阅读(299) 评论(0) 推荐(0) 编辑
摘要: 临界区和互斥锁的区别1、临界区只能用于对象在同一进程里线程间的互斥访问;互斥体可以用于对象进程间或线程间的互斥访问。2、临界区是非内核对象,只在用户态进行锁操作,速度快;互斥体是内核对象,在核心态进行锁操作,速度慢。3、临界区和互斥体在Windows平台都下可用;Linux下只有互斥体可用 临界区: 阅读全文
posted @ 2017-05-01 21:27 mximo 阅读(2028) 评论(0) 推荐(0) 编辑