加入收藏 | 设为首页 | 会员中心 | 我要投稿 四平站长网 (https://www.0434zz.com.cn/)- 云服务器、对象存储、基础存储、视频终端、数据应用!
当前位置: 首页 > 站长资讯 > 传媒 > 正文

读懂线程池的工作原理

发布时间:2021-02-07 13:56:53 所属栏目:传媒 来源:互联网
导读:Apache 和 BSD 类似,都适用于商业软件。Apache 协议在为开发人员提供版权及专利许可的同时,允许用户拥有修改代码及再发布的自由。 现在热门的 Hadoop、Apache HTTP Server、MongoDB 等项目都是基于该许可协议研发的,程序开发人员在开发遵循该协议的软件时

Apache 和 BSD 类似,都适用于商业软件。Apache 协议在为开发人员提供版权及专利许可的同时,允许用户拥有修改代码及再发布的自由。

现在热门的 Hadoop、Apache HTTP Server、MongoDB 等项目都是基于该许可协议研发的,程序开发人员在开发遵循该协议的软件时,要严格遵守下面的四个条件:

  • 该软件及其衍生品必须继续使用 Apache 许可协议。
  • 如果修改了程序源代码,需要在文档中进行声明。
  • 若软件是基于他人的源代码编写而成的,则需要保留原始代码的协议、商标、专利声明及其他原作者声明的内容信息。
  • 如果再发布的软件中有声明文件,则需在此文件中标注 Apache 许可协议及其他许可协议。

4. MIT(Massachusetts Institute of Technology)协议

目前限制最少的开源许可协议之一(比 BSD 和 Apache 的限制都少),只要程序的开发者在修改后的源代码中保留原作者的许可信息即可,因此普遍被商业软件所使用。

使用 MIT 协议的软件有 PuTTY、X Window System、Ruby on Rails、Lua 5.0 onwards、Mono 等。

5. GUN LGPL(GNU Lesser General Public License,GNU 宽通用公共许可证)

LGPL 是 GPL 的一个衍生版本,也被称为 GPL V2,该协议主要是为类库设计的开源协议。

LGPL 允许商业软件通过类库引用(link)的方式使用 LGPL 类库,而不需要开源商业软件的代码。这使得采用 LGPL 协议的开源代码可以被商业软件作为类库引用并发布和销售。

但是如果修改 LGPL 协议的代码或者衍生品,则所有修改的代码,涉及修改部分的额外代码和衍生的代码都必须采用 LGPL 协议。因此LGPL协议的开源代码很适合作为第三方类库被商业软件引用,但不适合希望以 LGPL 协议代码为基础,通过修改和衍生的方式做二次开发的商业软件采用。

三、如何选择开源协议

世界上的开源协议有上百种(有兴趣的读者请猛击这里了解),很少有人能彻底搞清它们之间的区别,即使在最流行的六种开源协议——GPL、BSD、MIT、Mozilla、Apache 和 LGPL——之中做选择,也很复杂。

乌克兰程序员 Paul Bagwell 画了一张分析图,说明应该怎么选择开源协议,大家看了一目了然,真是清爽。
 

不是说游戏开发前景不好,而是说这件事如果没有足够的热情很难走得很远,并且因为方向不是很大众,到时候想换方向了,可选择性就不是很多。

国内比较出名的游戏厂商就那么几家,但是投递的人却很多。这也导致这个行业的竞争很大,所以在招聘的时候会更看中你的游戏开发经历。

如果是校招生,很少会有比较多的游戏开发经验,但是可以通过许多途径去弥补这一缺陷,比如参加游戏开发比赛,比如自己开发demo。起码也得了解过或者用过一些游戏引擎,这样简历也会更加饱满一点。

对于游戏开发的业务能力要求刚刚也提到过一点,大概包括游戏引擎的使用和了解,比如常见的Cocosa2d、Unity3D等,游戏引擎的实现原理和机制,还有面试时候基本都会问到的计算机图形学理论。计算图形学是游戏开发领域及其重要的理论基础,毕竟游戏离不开各种图像模型的渲染和处理。

所以呢,如果你在大学期间有基础过一些图像学的工作,比如一些模型绘制、三维渲染的工作就可以去尝试一下游戏开发的岗位。我之前有个师兄在研究生阶段是做医学图像处理的,主要的工作就是对人体脏器和血管进行三维显示的,然后就去做了游戏开发。美滋滋。

6 嵌入式开发

上面几种岗位选择都是偏软件方向想的,而C/C++还有一类非常大的就业方向,就是去做嵌入式。嵌入式本身可能是偏硬件一点,但是现在做个什么事,都是软硬不分家的。

嵌入式的开发同样也会涉及到网络编程、并发编程等方面。通俗点解释可能就是,嵌入式代码是运行在别的小系统上,而不是传统意义的计算机上。

所以嵌入式开发更适合原来专业是电信、微电子之类的专业,毕竟这个方向除了需要编程能力,还需要基本的电路理论素养。

一般招聘嵌入式开发岗的公司大多是以硬件产品为主的互联网+公司,比如小米、华为等。进去公司很多都是在做物联网相关的工作,毕竟这是热点。当然也会有其它的业务方向,例如芯片、机器人等。

7 总结

说了这么多,有没有发现好像只会C++是找不到工作的。不管是哪个岗位,在对C++基础的要求上,还会有额外的东西。这其实很好理解,毕竟C++只是一门语言,只是一个工具。

就好比你光有一把弓箭,是没办法射大雕的。你还需要许多额外的能力和知识储备,甚至还需要一点预判的意识,才能够在合适的时机以合适的力度射出那一箭。

而C++,只是那支射出的箭罢了。你越熟悉它,箭头便愈发锃亮,破坏力也就越强。并且同时,空中盘旋的也不只有一只大雕,你还需要选择机会最大的那一只。

良知犹存  作者简介:我是安酱,一个稀里糊涂地进了大厂的业余码农。分享全栈技术,目标架构师。关注我,一起向技术大牛进阶!

(编辑:四平站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读