进程使用更多的系统资源,因为每个进程需要独立的地址空间。而线程只有一个内核对象及一个堆栈。如果有空间资源和运行效率上的考虑,则优先使用多线程。正因为每个地址有自已独立的进程空间,所以每个进程都是独立互不影响的。而一个进程中所有线程是共用进程的地址空间的,这样一个线程出问题可能影响到所有线程。像多标签浏览器容易一个见面假死导致整个浏览无法使用。所以像360浏览器等每个标签页都是一个进程,这样一个标签页面出问题并不会影响到其他标签页面。
这意味着mysql服务器将在存储引擎检索行后再进行过滤,许多where条件里涉及索引中的列,当(并且如果)它读取索引时,就能被存储引擎检验,因此不是所有带where子句的查询都会显示“Using where”。有时“Using where”的出现就是一个暗示:查询可受益于不同的索引。
本章主要介绍在iOS中多线程的使用方法,这对于合理利用cpu使用效率尤为重要。多线程实现了对CPU的并发执行,避免阻塞所造成的CPU计算时间浪费。在单核CPU的时代,实现多线程技术还局限于软件层面,这样给线程间切换带来一定的成本开销,但由于多线程的优势更大所以开发者还是会选择使用子线程处理逻辑问题,而到了多核CPU时代,由于硬件本身支持了多线程技术,就可以真正的让多线程同时地运行。
而OS X和iOS作为多线程操作系统,它们继承UNIX系统使用的POSIX线程模型。OS X和iOS都提供了一套底层为C语言的POSIX线程API来创建和管理线程。但实际上的应用开发中大可不必使用那些晦涩难懂的c语言函数,因为苹果公司已经为开发者提供了更为简单的oc的解决方案。接下来会逐一分析。
每一次的技术分享,篇幅有限,时间有限,听众的注意力也有限,这就要求我们必须能突出主题,不能什么都讲,最后什么都没印象,而是尽可能聚焦于一个点,让听众留下深刻印象。事实上,一次技术分享,能让大部分听众在一个知识点上有所理解和掌握,就已经非常成功了。
例如前不久我刚在部门做了一次技术分享,关于一个聊天系统的技术实现,事实上这个系统比较复杂,服务端用到了node、socket、redis、mysql,另外还有一些负载均衡、安全认证等技术,客户端用了React、Redux、React-Router、Immutable、SASS、Gulp、Babel、ES6等知识点,如果要完整的讲一遍,那么一两个小时是不可能讲的完的,所以最终我选取了大家比较感兴趣的热门前端技术,仅围绕客户端React和Redux来讲。事后证明效果不错,在一个小时内基本完成,并且让很多同事对React和Redux有了初步的了解。
先聊聊我的理财经历,我的理财大概也是从毕业三年之后才慢慢开始的,对了也就是从余额宝开始,后来在第三方支付、互联网金融公司工作,对理财的种类了解慢慢多了起来,互联网金融也就是P2P或者金融公司产品各种变种(其实也是债权类产品的进一步封装),有活期产品、封闭期的固定收益产品(日、月、年类的固定收益);买了股票(先是A股,后来美股),在了解了基金(指数基金、债券基金、股票基金等等),后来也看了黄金和期货(了解较少)、保险接触最少。
当某个信号的处理函数被调用时,内核自动将当前信号加入进程的信号屏蔽字,当信号处理函数返回时自动恢复原来的信号屏蔽字,这样就保证了在处理某个信号时,如果这种信号再次产生,那么 它会被阻塞到当前处理结束为止。