加入收藏 | 设为首页 | 会员中心 | 我要投稿 甘孜站长网 (https://www.0836zz.com.cn/)- 运维、物联设备、数据计算、智能推荐、云管理!
当前位置: 首页 > 站长资讯 > 动态 > 正文

中了源码的毒

发布时间:2021-02-06 18:46:47 所属栏目:动态 来源:互联网
导读:代码分析: 创建一个核心线程数和最大线程数都为10的线程池,保证线程池里一直会有10个线程在运行。 使用for循环向线程池中提交了100个任务。 定义了一个ThreadLocal类型的变量,Value类型是大对象。 每个任务会向threadLocal变量里塞一个大对象,然后执行其

代码分析:

  • 创建一个核心线程数和最大线程数都为10的线程池,保证线程池里一直会有10个线程在运行。
  • 使用for循环向线程池中提交了100个任务。
  • 定义了一个ThreadLocal类型的变量,Value类型是大对象。
  • 每个任务会向threadLocal变量里塞一个大对象,然后执行其他业务逻辑。
  • 由于没有调用线程池的shutdown方法,线程池里的线程还是会在运行。

乍一看这代码好像没有什么问题,那为什么会导致服务GC后内存还高居不下呢?

代码中给threadLocal赋值了一个大的对象,但是执行完业务逻辑后没有调用remove方法,最后导致线程池中10个线程的threadLocals变量中包含的大对象没有被释放掉,出现了内存泄露。

大家说说这样的实习生还能留不?

ThreadLocal的value值存在哪里?

实习生说他以为线程任务结束了threadLocal赋值的对象会被JVM垃圾回收,很疑惑为什么会出现内存泄露。作为师傅我肯定要给他把原理讲透呀。

ThreadLocal类提供set/get方法存储和获取value值,但实际上ThreadLocal类并不存储value值,真正存储是靠ThreadLocalMap这个类,ThreadLocalMap是ThreadLocal的一个静态内部类,它的key是ThreadLocal实例对象,value是任意Object对象。

ThreadLocalMap类的定义
 

ThreadLocal使用不规范,师傅两行泪

组内来了一个实习生,看这小伙子春光满面、精神抖擞、头发微少,我心头一喜:绝对是个潜力股。于是我找经理申请亲自来带他,为了帮助小伙子快速成长,我给他分了一个需求,这不需求刚上线几天就出网上问题了😭后台监控服务发现内存一直在缓慢上升,初步怀疑是内存泄露。

把实习生的PR都找出来仔细review,果然发现问题了。由于公司内部代码是保密的,这里简单写一个demo还原场景(忽略代码风格问题)。
 

规定AI作品的版权属于“进行必要程序者”,同时也明确界定了对计算机生成作品“进行必要程序者”,即包括程序员、使用者,也可能是人工智能系统或设备的投资者。

2017年,世界知识产权组织(WIPO)杂志提到:如果一部作品的创作过程中“人类的参与有限,或根本没有人类参与”,著作权法可以有两种潜在的生效方式--著作权法可以“拒绝”对计算机生成的作品进行版权保护,也可以将此类作品的作者归属于程序的创建者。现在国内解决此类问题也基本沿袭这个思路。

2018年,上海一家公司未经过授权,将腾讯开发的自动化编写程序Dream writer生成的财务报告复制到该公司网站。深圳市南山区法院裁定,该公司因侵犯腾讯的版权而需承担民事责任,向腾讯公司赔偿1500元人民币。

中国现行的《著作权法》尚未明确界定AI作品的版权归属,这一裁定可能是AI创作领域的重要里程碑。《著作权法》:“著作权是著作权法赋予民事主体对作品及相关客体所享有的权利。”其中,民事主体指公民、法人或非法人组织。《著作权法》保护的对象是作为民事主体的独创性思想表达,并非民事主体的AI无法单独享有著作权,但只要在作者名录加上人类作曲家或研发者的名字就能解决此问题。人工智能虽无法成为受法律保护的主体,但对其作品版权的保护也开始受到法律认可。

没有感情的辅助器-方舟的航向

人工智能作曲技术的日渐成熟,在音乐行业掀起一股不小的浪潮。尽管人工智能已经实现通过读取、记忆大量乐曲获取规律,计算音符节奏的出现概率并排列组合来“创造”音乐。但音乐的核心并非音乐本身而是“人”,音乐源于人类情感流动。《礼记·乐记》对音乐起源的解释非常贴切:“凡音之起,由人心生也。人心之动,物使之然也。感于物而动,故形于声;声相应,故生变;变成方,谓之音。”作曲家和演奏者透过旋律、节奏表达的情绪与观众聆听音乐引起的共鸣,这种藉由音符实现的,跨越时间、空间与种族的情感交流才是音乐存在的意义,也是莫扎特、贝多芬等音乐家流芳百世的根本原因。

从某种角度来说,由于音乐是人类抒发心情的一种方式,让没有感情的人工智能作曲或许可以说是一个伪命题。人工智能不具备情感,不了解音符、节奏等音乐表层结构和基于情绪表达的音乐深层逻辑之对应关系,其制作的音乐只是基于概率所排列的音符。

无论算法作曲技术发展得多么成熟,音乐作为人类情感交流的艺术形式之一,AI所作的乐曲必然无法完全取代人类音乐作品在社会中的功能和角色,人工智能也无法替代行业内顶尖的音乐创作者及表演者。不仅是音乐,在美术、文学等艺术创作中皆是如此。

(编辑:甘孜站长网)

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

    热点阅读