不论是服务器端编程还是客户端编程,编程中的同步和异步对程序员来说都应该不陌生,我们经常会用同步编程来解决顺序执行问题、用异步解决并行执行问题。然而,就是这样的常见的编程模式,有人却将其申请为专利。在谷歌专利查询网站上专利公开号为“US 20140282625 A1”的专利内容就是“Asynchronous programming model for concurrent workflow scenarios”,在这个专利的内容摘要描述有:

异步方式在编程中的执行过程是:先将包含有跟流程信息相关的全局变量和全局上下文指针存储到一个上下文结构体中。当异步函数被执行时,全局上下文指针被存储到本地变量中,当函数执行完,全局上下文指针可以从本地变量中恢复。

下面的流程图和组件图可看出这个专利中含盖的编程模式和架构。

图1

图2

专利是一把双刃剑,它能保护专利发明人的权利、鼓励更多人来发明创造,但也会因此限制其推广和普遍使用、浪费生产力。UNIX和BSD的专利之争就 是最恶劣的一个案例,Java和安卓之争也给业界带来了很多的麻烦。2004年4月,微软公司申请到一个专利,内容是计算机上,在一个特定时间内按下多次 按键来启动应用程序,即微软为双击鼠标启动程序申请了专利。幸好微软没有动用这项专利,否则的话后果实在太恐怖了。苹果公司也申请了很多让人哭笑不得的专 利,其中最奇葩的是“矩形圆角外观设计专利”。

苹果此前获得的诸多关于iPhone和iPad的专利中或多或少都会包含一些实际的功能,譬如Home键、背部轮廓设计或者前面板整体玻璃覆盖设计 等。但此次获得的专利却单单专注于外观,苹果的意图很简单:圆角矩形就是苹果发明的!专利所保护的圆角矩形设计,是一个非常宽泛的概念,宽泛到图中这个边 框的横竖线条的比例都能成为它保护的对象,无论设备是7寸还是20寸。

正因为此专利过于宽泛,所以被应用的价值很小。苹果曾在法院上提出三星抄袭了自己圆角矩形的设计,当时就激起一片哗然的讨论。这项新专利在法律诉讼 中是很容易被判定为过于宽泛而不具实效的,如果苹果想以它作为武器的话,实在是弱爆了。也许苹果只是通过D670286S探索自己究竟都能拿到什么专利, 这个专利应该永远不会出现在法庭上成为攻击对手的证据。

专利可以用来维护原创者的权益,但是专利的尺度宽泛以及漏洞极有可能通过了一些不实用的专利而引起很多不必要的麻烦,甚至对行业的发展造成阻碍.

文章转载自 开源中国社区 [http://www.oschina.net]

程序员请注意:异步编程模式已被人注册为专利相关推荐

  1. @程序员,你的编程方式已过时,云开发时代来临!

    作者 | 黄峰达,CSDN 博客专家 Phodal 责编 | 唐小引 头图 | 作者绘制并授权 CSDN 使用 我知道这篇文章你可能读不懂,但是它值得你去分享,未来就在那儿. 如你所见,在过去的几年里 ...

  2. 【转】1.7异步编程:基于事件的异步编程模式(EAP)

    传送门:异步编程系列目录-- 上一篇,我给大家介绍了".NET1.0 IAsyncResult异步编程模型(APM)",通过Begin*** 开启操作并返回IAsyncResult ...

  3. java原生的编译软件_原生态Java 程序员容易忽视的编程细节

    Java是Java程序设计语言和Java平台的总称,要想学好一门语言,打好基础最关键的,学习一种新的编程语言比学习新的口头语言要容易得多.然而,在这两种学习过程中,都要付出额外的努力去学习不带口音地说 ...

  4. 程序员怎样才能达到编程的最高境界

    程序员怎样才能达到编程的最高境界?最高境界绝对不是你去编两行代码,或者是几分钟能写几行代码,或者是用什么所谓的可视化工具产生最少的代码这些工作,这都不是真正的高手境界.即使是这样的高手,那也都是无知者 ...

  5. C#异步编程模式IAsyncResult概述

    C#异步编程模式IAsyncResult概述 IAsyncResult 异步设计模式通过名为 BeginOperationName 和 EndOperationName 的两个方法来实现原同步方法的异 ...

  6. C程序员如何使用D编程(一)

    C 程序员如何使用 D 编程 每个有经验的 C 程序员都积累了一系列的习惯和技术,这几乎成了第二天性.有时候,当学习一门新语言时,这些习惯会因为太令人舒适而使人看不到新语言中等价的方法.所以下面收集了 ...

  7. 优秀的Java程序员应具备哪些编程技术?

    想要成为一名合格的java程序猿,需要学习的知识是有很多的,但是基础知识一定要非常牢固,基础不牢固的程序员,随时都会被新的知识和技术所淘汰,下盘不稳风一吹就倒,那么具体作为一个优秀的Java程序员应具 ...

  8. 【干货】程序员必备的中文在线编程学习网站!

    迫于英语烂得一塌糊涂,本人愤而转向中文编程学习网站,给大伙推荐几个我认为质量和性价比都很高的网站,放心食用! 在线OJ及部分题解 先推一波OJ(在线编程评测平台).我的人生信条是:没有什么比亲自动手c ...

  9. C# 异步编程模式 APM、EAP、TPL

    目录 异步编程模式 APM异步编程模型 APM的本质 APM的实现 读取的同步方法: BeginXxx方法--读取的异步方法: EndXxx方法--结束异步操作 异步调用的结果--与IAsyncRes ...

最新文章

  1. 404页面设计技巧性分享不容错过!
  2. 大数据和个性化设计是用户体验(UX)的未来
  3. 【译】Jumping into Solidity — The ERC721 Standard (Part 2)
  4. 单目视觉标定:世界坐标系、相机坐标系、图像坐标系、像素坐标系——简单粗暴,粗暴
  5. linux nfsnobody用户,处理CentOS 5.5 x64 配置NFS服务过程中nfsnobody用户造成的问题
  6. Modbus协议栈应用实例之三:Modbus TCP客户端应用
  7. 超级管理器Android,超级文件管理器app
  8. java vector实现的接口_java的List接口的实现类 ArrayList,LinkedList,Vector 的区别
  9. html 边框轮廓,CSS Outline(轮廓)
  10. Ubuntu PDF viewer
  11. c8网络语言意思,求一些比较经典的网络用语
  12. Ain_搜索引擎这样用才有效率
  13. 适合初学者使用的Mac绘图软件推荐
  14. Windows7 445端口漏洞
  15. Vue 登录验证之滑动拼图验证码
  16. win10很多软件显示模糊_win10自带对录屏软件一直显示目前无法录制,后台录制出现问题怎么办?...
  17. 谷歌推出逐字搜索Verbatim
  18. mapboxGL入门详解
  19. 层次分析法实例:选择旅游目的地
  20. JS 调试分析 + 字体解析(汽车之家)

热门文章

  1. “美登杯”上海市高校大学生程序设计赛B. 小花梨的三角形(模拟,实现)
  2. 国际软件设计文档——概要设计说明书
  3. 服务器返回一个无效的JSON string,处理
  4. swift:打造你自己的折线图
  5. Java 语法 索引 ----- 泛型(Generics)
  6. oracle em(Enterprise Manager) 收集贴
  7. 成功使用Windows Live Writer 2010发布日志
  8. [经典推荐]事半功倍系列之javascript
  9. C# WebApi 返回JSON类型
  10. android数据回传多个页面_Android Day06四大组件之Activity多页面跳转和数据传递